{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import scipy \n",
    "import random\n",
    "import math\n",
    "import csv\n",
    "from scipy.stats import poisson \n",
    "import matplotlib as mpl\n",
    "from matplotlib import colors as mpl_colors\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Set the pars and import the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "N_all = 1024\n",
    "N = 32\n",
    "n_tasks = 7\n",
    "n_latent = 4\n",
    "missing_exp = False\n",
    "epochs = 100\n",
    "plot_interpolation = \"None\"\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "if missing_exp == True:\n",
    "    n_folds = 4\n",
    "    n_missing_values = 256\n",
    "else:\n",
    "    n_folds = 1\n",
    "    n_missing_values = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "results_paper = False\n",
    "if results_paper == True:\n",
    "    folder = 'Results_paper/'\n",
    "else:\n",
    "    folder = ''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "outputs = np.loadtxt('../Data/crime_experiments/outputs_crime')\n",
    "inputs = np.loadtxt('../Data/crime_experiments/inputs_crime')\n",
    "\n",
    "##### TO BE REDEFINED\n",
    "cell_inside = np.loadtxt('../Data/crime_experiments/cell_inside_ny')\n",
    "cell_inside = cell_inside.reshape(N,N)\n",
    "cell_inside[cell_inside == 0] = np.nan"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Import outputs with missing data\n",
    "data_final_with_NOna = outputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "crime_list_name = ['Burglary','Felony Assault','Grand Larceny', 'Grand Larceny of MV', 'Petit Larceny', \n",
    "                  'Petit Larceny of MV', 'Robbery']\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Import the predictions for missing data exp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "method = 'MCPM'\n",
    "prior_mixing_weights = 'Normal'\n",
    "missing_exp = True \n",
    "inputs_dimension = 2\n",
    "n_folds = 4\n",
    "n_missing_values = N_all/4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_dataset_MT_Normal = np.load('../Data/crime_experiments/'+ folder + 'final_dataset_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "latent_means_MT_Normal = np.load('../Data/crime_experiments/' + folder + 'latent_means_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "latent_vars_MT_Normal = np.load('../Data/crime_experiments/' + folder + 'latent_variances_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "means_w_MT_Normal = np.load('../Data/crime_experiments/' + folder + 'means_weights_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "vars_w_MT_Normal = np.load('../Data/crime_experiments/' + folder + 'covars_weights_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "offsets_MT_Normal = np.load('../Data/crime_experiments/' + folder + 'offsets_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "\n",
    "cp_MCPM_Normal = np.zeros((N_all,n_tasks))\n",
    "for t in xrange(n_tasks):\n",
    "    cp_MCPM_Normal[:,t] = final_dataset_MT_Normal[0,:, t + 9]/np.sum(final_dataset_MT_Normal[0,:, 9:16], axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "method = 'LGCP'\n",
    "prior_mixing_weights = 'Normal'\n",
    "missing_exp = True \n",
    "n_folds = 4\n",
    "n_missing_values = N_all/4\n",
    "\n",
    "final_dataset_ST_Normal = np.load('../Data/crime_experiments/'+ folder + 'final_dataset_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "latent_means_ST_Normal = np.load('../Data/crime_experiments/' + folder + 'latent_means_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "latent_vars_ST_Normal = np.load('../Data/crime_experiments/' + folder + 'latent_variances_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "means_w_ST_Normal = np.load('../Data/crime_experiments/' + folder + 'means_weights_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "vars_w_ST_Normal = np.load('../Data/crime_experiments/' + folder + 'covars_weights_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "offsets_ST_Normal = np.load('../Data/crime_experiments/' + folder + 'offsets_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "method = 'MCPM'\n",
    "prior_mixing_weights = 'GP'\n",
    "missing_exp = True \n",
    "inputs_dimension = 2\n",
    "n_folds = 4\n",
    "n_missing_values = N_all/4\n",
    "final_dataset_MT_GP = np.load('../Data/crime_experiments/'+ folder + 'final_dataset_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "latent_means_MT_GP = np.load('../Data/crime_experiments/' + folder + 'latent_means_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "latent_vars_MT_GP = np.load('../Data/crime_experiments/' + folder + 'latent_variances_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "means_w_MT_GP = np.load('../Data/crime_experiments/' + folder + 'means_weights_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "vars_w_MT_GP = np.load('../Data/crime_experiments/' + folder + 'covars_weights_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n",
    "offsets_MT_GP = np.load('../Data/crime_experiments/' + folder + 'offsets_'+ prior_mixing_weights + \"_\" + method + \"_\" + str(missing_exp)+ \".npy\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot crime data with missing NaN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Import outputs with missing data\n",
    "prior_mixing_weights = 'Normal'\n",
    "missing_exp = True\n",
    "inputs_dimension = 2\n",
    "data_final_with_na = np.loadtxt('../Data/crime_experiments/'+ folder + 'data_final_with_na_'+ prior_mixing_weights + \"_\" + 'MT'+ \"_\" + str(missing_exp)).reshape(n_folds, N_all, n_tasks + inputs_dimension)\n",
    "ytrain_non_missing_index = np.loadtxt('../Data/crime_experiments/ytrain_non_missing_index')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Plot missing locations\n",
    "# plt.imshow(ytrain_non_missing_index[:,1].reshape(32,32))\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "fold = 0\n",
    "na_data = np.zeros((n_tasks, N, N))\n",
    "masked_array = np.zeros((n_tasks, N, N))\n",
    "im = [None] * n_tasks\n",
    "for t in xrange(n_tasks):\n",
    "    na_data[t] = data_final_with_na[fold,:,t+2].reshape(N,N)\n",
    "    na_data[t][~np.isnan(na_data[t])] =  0\n",
    "    na_data[t][np.isnan(na_data[t])] = 1\n",
    "    na_data[t][na_data[t] == 0] =  np.nan\n",
    "    \n",
    "    masked_array[t] = np.ma.array(na_data[t], mask=np.isnan(data_final_with_na[fold,:,t+2].reshape(N,N)))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "bounds = [None] * n_tasks\n",
    "for t in xrange(n_tasks):\n",
    "    bounds[t] = [0,np.max(data_final_with_NOna[:,t])/2, int(np.max(data_final_with_NOna[:,t]))]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "cell_inside = cell_inside.reshape(N,N)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABAEAAAC9CAYAAADCxGQFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xe8HVW5//HvQypJKCGFmhBCVTqEXi4gCgpEQMUC0kQvlqtXxJ9ijSJXuXqvBb2ioHQERZFejBCQEiCENIo0IwSBEAglgfT1+2PWIXuVXU7ZZ59z5vN+vc7r7DWzZvbsPWuvmb32PM+Yc04AAAAAAKDvW6PVGwAAAAAAALoHgwAAAAAAAJQEgwAAAAAAAJQEgwAAAAAAAJQEgwAAAAAAAJQEgwAAAAAAAJREqQYBzMyZ2Uwzm2Fmj5rZt5vwHCea2RVdvV50XrT/Z5jZKXXqjzOzF7px+wab2UIzO6+7nrPiuaeY2aH+8YlmtkV3b0NPZmYDzex7Zva4mc327egiM9ukyc/79n6JptPPdBP2ffP59/gmM5tlZt+N5h3g++54+uNt/bOZTTazk6P5Q83sNTMb0/xX0L0qjmUzzewhM3tXA8sE/bqZnWpmn/ePDzCzg2ssO9fMtumarUdnsO87z8yO9N8BZpjZRtG8KWa22MzWqph2rH/fTzWzff17YtFyk1px7tZbRO12lplNbHC5qu3Pr3Nw125pufRv9Qa0wB7OuSVmNlTSo2Z2lXPu4UYXNrMBzrnlXblBzVgnqtrDObek1RtRxVGS5kg6ysw+75x7q0XbcaKkFyQ92aLn74kukmSSdnXOvWFma0j6kKRNJc2rrNgbPs+9YRt7EPZ98+0saSPn3A5V5j8m6YNm9m3nnDOzvSQtkrS2n3+hpE9K+m3FMh+UdL9z7tkmbXOrtZ3LTJR0pZmNds6tqlH/RFX06865cyvmHSBpsKTJXb2R/vOiOtuG9mHfd86/S/qac+7qKvMfl/QBFf2KJH1c0kOS5Jy7y8yWq3jfbpckPyDwcUnHN2+T+4S2dnuIpKvMbLhzbkWrNqYHt89uU6orASLDJPVTcSKR/OpiZneZ2QEV875vZrdLutRP+28ze8LM7jaz/8v9MmNmO5nZ38xsupnNMbOTKuYF6/S/ghxeMf/TjCp2DzN7h5ndYmbT/L7KjlCa2UlW/BI428wuM7O1/fRJvnyTmT1mZldb8cvWxmb2jJkNqFjHfWa2T5VNOUnSjyXdLenoimXe79vPDP/ce5jZGr7dPeZHVv/i625sZreb2YNm9oiZfa1iPVXbeOVrlDRB0i/88+3RzrezzzGzrSQdIenfnXNvSMVBwzl3pXPubl/nQjM7x++HyWY2yLepB83sYT/PfN1se/Hzxvj99JCZXa7i5Kw92/oeM7vXLz/TzA6rmDfXzL5tZlMk/dAK37TVv27f4OuZmX3dzB7wbeB35n8V8a/z/3wbe8LMfuWn72Fm0yqeq5+Z/dPMxnb0fe8J2Pddu+/N7DC/3llmdoOZbWRmm0u6TNIWfl6u/31N0mxJ+/ny8ZIurpj/R0k7mtlmFdNO0OqT+L5ssqQRkkb4tvdjM7vf79df+P2R9Ou+Lf7AzLaXdKqkk/y8zzb6xL59PGDF8elyMxvip59oZjdacV40XdKmZratmf3V7/tZ5s93rMrx1/yVeH4bH7LieLabn8f5UoF9X2Xfm9laZnax7+PmmNkn/fQfquhHfmRmN1Z5eRer+FIvM9tQ0khJsyrmX6jwC/9+kla2HRNQ150qvoOtJ1XfVxVOtuJ89XEz+1g072tWHPcetoqrYszsCDO7x4rj8BTzVxNk2ueXzeyqiuWGm9nzbe25z3POleZPkpM0U8WHeYmksyvmTZF0aEX5LkkHVMy7WlI/X54o6QEVJ2mDVHxpu8LPO7Hi8VqSBvrHwyX9Q9L6VdZ5uKQbKp5/hqRdWv2e9aW/iv0/w/+NUXE1zAOSxvs6I/1+Gi5pnKQX/PTtJT0rabQv/5+kn/rHk1T8UrWOil8MJ0v6qJ93laQP+cc7S5pVZds2kTRf0kAVAwB/qZg3U9J+/nF/FZ3nzipGq9doa1/+/5qShvrHg1V0crs02MYPzdUr+5+kYyTNqFPnQkn3SVrTl9eo2Cf9JF0n6egG2sufJH3ZP95V0srcvqjsZ6LpwyvaxKaSnpPU35fnSvpZRd2TJN1R0V5G+v/HS/qZJPPlb0v6r4rXOUVFvzdQ0qOS9vLzpknazT8+StK1rd537Pues+8ljVbRx23py1+RdI1/fICkqVXe3wMkTZV0mKTz/XM/LmlL+f7Z1ztP0rf847GSFrbtk772p+JYNriiPTzjH39L0un+sam4MuJTvjxFYf8/SdIP4sdVnm+upG0y00dWPP6FpNMqtul1SeN8eYCkJyRNrPiMrKf6x1+n1cel4yXd4h+X9nyJfd/Yvpf0Q0nnVaz7n6pyLhQtN0XSoSr69LGSvizpNBX936m+zhhJr0oa4su/kfT1VreNnvwXtduPSbqjwX01V9Iv/OOxKo4hG1ess/KY+bykIZK2kPS3iv3zb5LuqdE+n1FxJZokfVEVx8q+/lfGKwH2cMUlhxtIereZHdngcpc551b6xwdK+oNzbolzbqmkK6ssM0zSRWY2W8VlQ6MkvaPKOm+UtLWZbWZme0ta6pyb3o7Xhcbs4Zzbyf89K2lrSe+U9Cczm6HipLyfpM2j5Q5UceCZ78u/llQZR3ezc+41V/QiD1Qs/wtJn/GPPy3pl1W26wRJv3fOLVPxpWEHWx3LeoekH5vZ6ZK2cs4tUnGwHCDpAjM7VkVnKL/tPzazWSoOYuMkVbvEFo2JY//28L+aPOn3SZs/uNUhHCbpDN+mHpK0m8L9UK29HKji8nM55x5U+OtDI0ZL+rOZzZF0jYo+pzJ2vfLX08Mk/co5t9g/3wI//Qg/7yG//R+WNL5iuT8755b6tjpD7W/rvQn7vuv2/Z6SpjvnnvDlX0mqG89c4RYVv7gdI+lWSXFIwwXyv96p+NJwlWtdSFV3uM/vo49Ier+fdoSkT1S0vX1UDJY0y0n+F9zZ/rkr2/mdzrm5/vHWkpxz7lrp7atpXlH94+9rzrmb/eP7KqaX/XyJfV9/379LxZfztv7tarWvv7lU0nGSPirp8soZ/tzxfklHm9maKn64uThZA2L3mdlcFX31Nyqm19tXbcfFZ1T86LpPZt6DKkJetpN0iKStJN3j29ZPFR4L326frgiNu0BFOJlUhIpUhsv0aWXMCSBJcs69asXlm++W9GdJKxSGR8SXYi6qsTqrMv0sSU9JOtY5t8rMpkfrfXudfv6vVTTAjdQ3TqB7A1Pxa9JOyQyzcdEkV6NcmWdgpfxnyzl3u5n93IrL6o+Q9KUq23GCpGEVl7mtqeJE9izn3OfNbAdJB6k4yZ/knLvczN6h4ovDuyV938x2lPQfKn6pm+CcW2Zmf9LqNlevjSNvhqQtzWxd59yrzrn7JO1kZt9TMdDXprKPOFbFyPTezrk3zex/Fb7f2faSUa1vqeaXKn4l/rUkmdkrqtLneHGbbnvOSc65S6o8R7Vt/52kM/1lm+NVfGnr7dj3oc7u+9xzNsQ5t8JfvvsTSe/LzL/HzFZZEW51vIqrHfqyXH4bU/Hr79+a/eRmtr+K93gf59xCKxLN7V1RpdH2Vuv4W+24WvbzJfZ9Y/u+1jlbPb9TEYL0kHPuBbOkO75QxXvgJE1zfTf3SFfaQ9JSSf9PRRj01hXtuNF9ZQ3MM0nXO+c+UaVe3D5/JeluM7tXRZt8pMZr6FPKeCWApCIbsYpO63E/6SkVv9jIzLZVMZpUzRQVSYoG+/V8qEq9dSQ97zutvVX/F9nfqBh5PFjVry5A13pM0kozO6ZtgpntammPf7ukw8xspC+fosYT6fyfipjVPzsfV1zJzPZVMVK+kXNunHNunIo2cIKfv7VzbpZz7icqYmcnmNkoFZe63qTicrWlKi5RW0fSfD8AsIXCqxUabeOva3XCrdJzzv1d0k2SzjOfB8KrFTO2jqRX/JfAUSqSDDXidq3e77uqCENpj3VUXAYuM/uwiksrq7lB0qlWJElVRdu+TtJnbHXOi2HWQHZofzD/nYpR/PNcH0i2w77v0n0/VdKuVuQAkIpfXtqbjOwcFQOj91eZf6GKX33kyhmfe52kL5rZIEkysxG2Ok9CrX69I33+OpLekPSab0cfr1H375LWMLMj/HatYWbD1fjxN4fzpRD7PjRZfiDQzEZIOlLSbQ2sW9Lbv0h/RUVIVM6fJO0i6XSVI/dIl/BXwP23pBclfcpPrrevjvfzxqr43nZPxbzKY+b6kh5WcaXYYVbk9Glrc7vU2KZ/qQhp+61KNqBYxkGAtsuoZkl6RKt3+NmSjrAiwdEXVftSzGtVJLaYpeIEcaaKxEWx/5L0WTO7T0Vjf6DWhjnnXlbRuK/o45cx9hiuyEx6hIrEIzPN7BFJZyr6Fc45N1tF7Nzt/vK34Spi8BpxiYrwk2qdy4kqTqArn+9+FQfOfST9wHxiQEn7q/glbIyKJGQzVbS/PzrnZqk4ST7QX3VytooBqzaNtvFfS/qukRiw0nGSnpY03YrkNXeriGu8tEr9SySN9G3lIoX7oZYvqDh4PSTpsyoug6xmopnNq/j7vKSvS/qpmd2jYtT9mRrLXyjpr5Lu923rAklyzl2k4gTnbivCSu6RtG2D23+BisvQf1uvYi/Cvm9MzX3vQ6lOkvRHv+4DtDqEoCHOuaedcz+uUeViFflSLmrPevuQ76uIv57m3+NbJG3s59Xq16+WtJfVTg43paK9zZV0s4o8OY+oCD+ZWm2j/CW3R0o6zW/XQyqulGno+FtlnZwvhdj3oTMlDfX98B0qBg/bFTLinLvYOZc9b/cDn39QceXTn9qz3rLzAwGnS/p/ftCq3r56yR93J0v6onPuuYp5/fwv+JdIOs4596Zz7nFJJ6u42mCmioGBo+ps1gUqrjYp1b5sS/6DdjKzYc65Rf5KgGtUxIR26sTXfxgeUZGw5Il69dE7WHE7lK875/Zv9bYAzWRm/67iElFulVQy7Ht0J86Xyot9j65mZt+XtNw51+iPe31CaXMCdIHL/aUpg1X8otKppCBmdpSKyxgvplPrO8zsQhW/eB1TuybQu5nZX1X88vTeVm8Luhf7Ht2J86XyYt+jK5lZPxW5H95UkV+rVLgSAAAAAACAkihjTgAAAAAAAEqJQQAAAAAAAEqCQQAAAAAAAEqiXYkBR44c6caNG9ekTUFfNHfuXC1YsMAk2g/ar6390HbQEQ8++OAC59wo2g/ai2MXOoP2g86g/aAzKttPLe0aBBg3bpymTZvW8a1C6UyYMOHtx7QftFdb+6HtoCPM7J8S7Qftx7ELnUH7QWfQftAZle2nFsIBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoif6t3gBE5t0bljfZq/4yyxaF5YHDum570LusWBKW+w+uv8ySV8Py4HW7bnvQe6xaEZbX4PCAdnj8+rC81eH1l1n8UlgeOqrrtge9S0eOXQDQFTryPaoP9FlcCQAAAAAAQEkwCAAAAAAAQEkwCAAAAAAAQEkQ9NlKcSy2JK09JizHcbqS9JNxYXm7j4TlAyaly5AnoByWvlG/zs+2CMvbHBmWD/peugx5AvqWXN8Ty/UZzz8UlgetFZbXi9qWRG6BvmjulHTamwvq1ln0yQNrrnbYZbPTiaO3a3y70DvE8bc5cbytJD12dVjeYOewPHKbjm8TgHLIfa/KTYtNsrC8/9fD8h5fSJfp4XluuBIAAAAAAICSYBAAAAAAAICSYBAAAAAAAICSYBAAAAAAAICSIGNTKz31l3TaHd8Jy9MeTuv0i8rrPxqW/zUtXWbcAe3ZMvQG9/88nTbnirB8691JlddfCstrL/hFOCFOFChJ4w9u58ahR3thRjotTha44q20zuDhYXnAmmF50QvpMmtv0r5tQ893Vprg79zz6y/2j6j8ncOiCT/YPl3of13Dm4VeYvJX02lrbxyWLXN6Gvc3cTLKBY+ly5AsEG2OiRK7/Z6+pZTuOyeddt1pQfHF29Iqo6Iuao09owSnz92XLrTV4e3cuO7FlQAAAAAAAJQEgwAAAAAAAJQEgwAAAAAAAJQEOQG606WHhOXrb02qfP/KsHxGLnblkavC8q6fDMujtq2/LatWpNPWoDn0aGePCIr3n/VKUmWPN8Kyu+igpM7ayxaHEw7+QVgeuXX9baH99C7To4Dt/oPTOlO+HZaPuyWt8+rcsDxwWFhesaTdm4aeb/ZGYSztI89n6kTlX/zPxkmdO7/8XFAePCSqsNWOHdg69HgzLqxbZfGZXwvKQ397f1opjrkdMjIsz5uaLkNOgN4vjuXPaSS+nxwA5TQpbD8LJqdVRkXps9yl70srTb8xLL/zg2G5F+Y/4koAAAAAAABKgkEAAAAAAABKgkEAAAAAAABKgiDeZnnlybrTbrkyrXLGV6IJl/5HUmfZ3LA8MI5DiePkJGnoqGgli9I6g9dNp6E1nrw5mXTLV8McAL/MLHZNVF50SXqz02H7RBPmzwnLufYzbMPMs6FHiuP2Jen1eWE5dz/td0W5IeJlpDTmPy7HOQLQ+2Tit99YGJY/klnsr1E5jv+XpPtXheXhd4Xl7TeZWXfzsnkncjku0Brx8USSpkwKy1P/mVQZ+tmTwwnP3JXU0eIXw3Lc140/uO7mkc+mF4pi+c3SHAFE+0OS9HQa8L9selg+6u6kimbHKWyuuzGtND4qx+dRwzaou3k9DVcCAAAAAABQEgwCAAAAAABQEgwCAAAAAABQEgRCNcu3tkynLQiLyzOLTT47LB90dFpn4B7RzZXH7huWl7xad/OI/+/Z5hzw3mTawKj8j8xycajTxFwo/yuZaZVeejSdNnq7sEwMZc8153fptHh/LVmY1nkxisced0D99QxeJyyvWJouE8fg0nZ6tFt2PimZNnytsLxXJiz/2Kh8x7i0zoCnw/L2URi4coeuOEfBTidmKqHHuPaUdNp2URaJR89O69z127D8vm+ndeK+JM4PkTv3ieN06X96tEmZeP9JLoz4z7QMlFXUJ9y19buTKlvuGpY3SWpIv4xS2HxqSlpnx/hn86VvhOV/PZAutN4WmWfrObgSAAAAAACAkmAQAAAAAACAkmAQAAAAAACAkiA4qqtcekhQnHphWmXPD4flw+MgSkk6/YKwvOVhaZ2VUdzt2lGES+4+ysTl9mzTzw+K56S32NZOUflHmdW8e/bl4YSx+6WV4raw7rja89Gz3f3DsDztV2mdHY4Ly7m46i2iPBSN3Hud+7P3fr8Nc8q8kKmyMgp9vOdDmUp7Rjda3verSZWt4vu67/OVsDwoSj4gpXGX6Fkmh/v5lYvvS6qsd2J0vvGhryR1tPvnwnIub1F8bCK3Ue93TJgDII7/z2mkDkrinvD857zM6euX54Xl09ZJ6+x25yXhhG2OTCvFx684V1YvPHfmSgAAAAAAAEqCQQAAAAAAAEqCQQAAAAAAAEqCwPCOmj8nLE+7NSjueXRmmdN+H5Zz9+EeOqr+c8dxJ3OnhOX+g9Jl4vt3bxBHmCuN7yXet3ni+xk/cVNQ/MaO6SJjjo7G7E6bl1YatmFQ/ETmnru/Wbk8nPDKk2E5zhEgpdubaxu0l+4Rf95nXxaWN4xuiitJWxwaljfZM63TkTwhi18KywPWTOvE/VWuncTPTc6S5rn+38PyvHuD4gm5eP9TvhSWc8eu8QeH5dx+jvPV/HD9sPzRa9JlFj0flgdm8gY08tzoGo9fH5ZnXRoU19sts8x2HwnLuZwkA4e1f1viY9ewDeov00jboP/pPr8nvh/tEMflT/5aUDzviHSRgZ+Ljl8HfS+t1Ei/sN4WYTk+Ng3JfH9btijamA70c03ElQAAAAAAAJQEgwAAAAAAAJQEgwAAAAAAAJQEgU+NiGNQJK369PZBeY1Nowq529e+ODMs3/LFtM5xN4flNxekdUZtG5Y3mhCW//DhdJmNo0C9QZkbZa6M4jWzseGv1a9DPGYo0370yyjof+L5QXHMFR9Pl/nXtLCcux98FGv5mxdnp3XiGKU4jvLRq9NlNg3vJa44r4CU3s87l98ijg8n9rK2TNtZedqBQbnfwKjCezIxZ0NGhuVH/pDWGbtfWO6XyS0S79P4vu5xjK6U9hG5+767qF3kYusayS2AUJyzQdKSc38dlAcfOzEo3/mda5Nldln4P0H57sn/k9TZbHxYHvuOdHMGf+uccMJ+4T3m9d2wbUuSvnpdWM4dE6eH/ae2zRwDF78YluN7PCMV53CQ9MopYdDteocMCSsc+Kl0PfF7PePCtE58X+5c/7Pm8LAcn8e8MCNdZsTW6bR6cn0L/U/fd0yaQ4mcBS0Uf+Yk6UebheXD/jcoDjwuc+CJz6Om/jits/t/hOVFL6R14nPlOD9N7tx5zF5hOfea4vPgbswbwJUAAAAAAACUBIMAAAAAAACUBIMAAAAAAACUBAG5jYjugytJ/f4Ult03owrH36REHIe7fuZm8OdG0+asSqosi8L0Bl76bDjhjefS9W45KSw//2BaJ45LGTw8rRPHqrzwUFpneMW9NHPxL2WTiROae9nrQXncbtH+GBvF4EvS2puE5cGZvA6TwxjbF/77yqTKuqOj1Vw5P5ww54p0vbn7gsfiuO5MPGnSxnJ1gnWWPB7vtm8kk/pHzckdG1U48sJ0PXFMnGW6/mf+Fpbn3ZfWie/HHt8394lMvxffE7zfgLTOsqVReVFaJ5brW4jTDZ05Opk0OM5X89KcoLj/B9LVPB2lFhkb58CRdO3TYfmJp9M6u98Qxl1+YvblQXlJ1BVJ0uB5U8MJcRuUpPnha9B9P03r7HJKWI7vdy9JG++x+jHHrmzs7Iiom3DHRMelvb+crudfD4TlXF6HZ+8Ny3EOJUkaHeVDeuWpsJyL483dEzy2LMpTktv3uTw4Mfqf5sjF6tfTkVh+4v97lvvOSSZddFZYPmFC1E+MyuQEiL+35HJRRbnUnpx0Y1JlYZRiZ7dXoj7hwXPT9a4f5o9LD8BK+5tMLh8NWDMs18tb0uC5M1cCAAAAAABQEgwCAAAAAABQEgwCAAAAAABQEuQEaMBrk+KAf+nyeMJXomDGv50V15D2PSMsL3is/pOvSONSBm57dFQniqt+z4/S9cQ5AOL4cknaYKew/PqzaZ3lb4XlN19O64yuiIExxpl0b3pP7XG7RxOGrh+Wc3FDcZ6AJa+mdUZsExQ3uPzEtE6cxyGO0T48E9e0MLr/+wY7p3XiGKVcvP/z0XPH8VLxeqwDsYB9yDOTLkum/TCZMD0svz4vXdEme4blOAZWkpYtDsu5z3Ys7kfi+H9JWvpa/fXE99+N+5mcXIxuN95ftze4M2ks0ltRmplDTg+Pb8tvOylZZvxZUeKJOAZf0pg/hrGZw9ZPqujRu6IJ8x8OioMP2jhZZvnPwmPpgF2+n6544m/CctyepDQHQK6tLH5x9eNVDcSA93WXfC2Z9O14wsduCMuZtqHNojwOY/dL68RxsblzqHlR3oAPZPLXxOI8Abl4/zi3Se7Ylctlgu7RVbH6cW6Bjqw3l5+AXALNcd5pyaQjD4wmvDs6yMX5j6Q0p1WuTnSOtEUu98zKqF94a2G0cRely8S5TtYckdZZM8q/ljuHi/ufXD9WmeugwVNnvqEBAAAAAFASDAIAAAAAAFASDAIAAAAAAFAS5ATIiWKtBwxKq3w0uuWwbg/v5/3IZ36dLPPO70U3W87FVa8VxTKefHu1rVwtF4MXi2NgcveYjGMmc3G5G0bbvNXhtZ+3jDkB4lidTHz/wqefC8rD34rir+//ebreON66kdiiXBxjHB8ex1bn4qUGrhWWH/hlWmfElmE5F7O0TnSDce6rHFr0fFAcPTatcvpu0YRXonwNT92cLjRgaFhea8O0zsCozg7HpXVWRH1C3FZyuSzie/IuW5TWifualUvTOv2ijnjoqLRO2d0Vxsvvn7ll+21nRxOuCHMAnHJNusxFe1wXTsjk8hi2X9TXL1uV1HnH0VFugej+8cvvDPtFSRpw0PhwwopM2zg/ymNw0LFpnTejey8fd0tap1L/NWvP74ui/uf29DRGkz4eTYjPPx65Kl0ojrnP5WOI4/BPnJLWifuOOFfN2mPSZXLHodiShfXrxHJ9HeqaFOX5mdTA/cw7skxWV8TuE//ffXbYNJn00t/+GZTXuTs6oE1Jc3DpM/eEZct89R0Q9fc7p7lxkv6nkXxHcT62a+Mvj5Imnh+Wc+fgW743LI/ers4TN5YUoITf0AAAAAAAKCcGAQAAAAAAKAkGAQAAAAAAKAlyAuREsV5DfpmJy38muuFxFBc3KBNO+M0TbgvKo3RbUufz5+0RThi5dbqi16J7SC54LCw/9Zd0mTgG+LZvpHX2+lJYjuPUJenpyWE5vv8m0hjE49P9MXzFvuGEKBZT11+ZLPPIaeG0d+6bVJE+819hecKn0zrzpkbPHd1HedYl6TIzo7Y6er20zmFRHoPoHuCSuI97PYPDnA6Df5b5LE+P4sfiz/aIbdJlnorin9fol9aJ7+WdiftOcgLEcbG5+Nu4f8rlsojj8dAxe34xLC9bnFQ5SOH91xdFIYtRVhpJ0ulfez0o36G7kzo37hWWR33tU0mdRT8Ng8yffSKcv2JZ5snvfzpc7yZplQ1+e3k44fEb0kpx7gykov7nwCduSqos/mwYmzo0zvkR5XmQJN34ubAc5yiRpL2itrt2ZkdH+ZqSXDW5WNrXnw3LuXjgMVHjjfMTSNKQkek0tFuH4/nR98XnDyfflVTZYo1/CydE5yAro9MNSbprzN5Bea3M6esuP3tfOOEDl6WV4v4lzhEwd0qyyKKzw5wFwz60a7reOL9RLidSLkdbF+BKAAAAAAAASoJBAAAAAAAASoJBAAAAAAAASoJBAAAAAAAASoLEgDlxcoqV7KokAAAfS0lEQVQnb07rTA6TPWhhWLzs8XSR3aLyZhumdTR4nbB86kZpnaOPDcvx9uYS+q0ZJfDa4wtpnZVRMpx1x6V1Bq2TTkOo/+CwnEkWkiRU/FeYnWv6dekiK1eG5em3pHV2OTRM3Dj31K+lT/2ZbcMJe58eltcek674/WeG5bmZZJmPXROWt3l/Wme9LdJpWC1uO8MyadpGbxeWp50blnPvcfy5zSXdiuX6vXU2rb3M8jQRnUZGiQr7D0rrzJ8dlnN9T5S0DA246/vptCiv7DlRrteHMqs5MSpn0kqq/8CwfMIRv07qfCL62WFU1NVsf3K63peinKSjPvOetNJPPxataHxaZ9R26TSE4v4nPh+RNPS9UR9w5/fCcpysT5LGRlls4wR/UtpHzbo0rRNvT/xcucSkY/cLy3EyL0l6YUZY3mCntE6cABF1TTJLp8WJAY8J60z6Q2Y9H4omHJOuV7+vvd6seBm0VpJkdFpa540okfWt3wyKMzKnpuuuH5aXZfJ+amGYOHbVsen5xhoT1g4n7PPlsPzSo8kyw354QbSSTD8SJyJdb/O0zogt02ldgCsBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCYKccuKYjTieTZK2uiss7/7ZoPiNBVGMYu5pcoGVT0cBmkd+OK2zdRRrPWDNsJyLp41f05oj0jovzqy9jCQtej6dhtpGb59OGxYlhNj80HCRscckizwRhS3+KfNUb34iDKDd99hMpR1PCMvbHBmWt/tIuszSN8LyDseldebPCcuD103rvBLGXWXbKlYbkvmcxv3ROz8Ylh+7Ol1mUBQ7G/cZkrT4xei5R6Z1+g0Iy0OjYLv4eaR8nG5seJTHIH4eKY2bi+OXkdr3jGTS4xedFZTPuHxiUB79sWuTZR6Oypm9rBfmhuXMkUv7R12Pjv5UWM7Ek4865fBwQi6m++Zbw/L8p9M6r0YbGLcniTYVy8X3H/qTsLzWxmF59mXpMm++FJbXyHy+X4paWSN5SzbaNSwPGZXWifuf3HEpPh/K9Y/L3wrLA4fV376SS+L/c6K4/EkdfTJyAPQ9ufxGH41yT0X9+q7zPpks8vqzYfmJ6elqF10TJnIbtm1aR4f9IizH52L7fjVdJj7OvLmgfp34WCVJC6J8A5vsldnA9uNKAAAAAAAASoJBAAAAAAAASoJBAAAAAAAASqJn5ATIxZnHsV3zpoblXCxxHPiR00gcxePXh+UrMvc7P+A7YXnar4LikjfTRYaceHQ4Yesj0kqvRzdxzsVe5+4dXqmjcY3jD65fJxeP2WpxnLmU3nP4rZfD8qLoXqNS+trifSFJE04Ny7l45ymTovJZaZ3jrgvLD4b3el8YhWdL0oE/DOOvD8zFS8WOvDCdFsdaNtJekjqZ2Mv4M9lILHir5bYxzoUR12kkljiOgZXSPBC5545jweI8C5I0Orrf+YLHwnIujnf9HcOyyzx3vFwuJje+v/fQTDvoiN4aX/vcA+m0+D2Zfn5YHp0JNpwfxUPn+vjdPxeW5/wuqfLCyWEumkcym3dQmL5G95wc5gCYmDlEvrEwLI/PpDmZ/tew/L6fjk8rff6psBy3947mCLk0ivVdnPn8PXxlWO4J8f+N9D9xf5Prf2IvP5FO23i3+svNuzcsvzAzrbPxHmE5ziUU9xGStNOJYXnA0LRO/LqHb5bWic/N4j41J5fbKNZI/9Nb+6juFMflNxKD35Flcoj3b79cXxL3SXGesi3C/FWS0nPlOVekdfb/Ru3nkaTbojo3nZ3WOeGSsHzX94Pi7Relixz4168H5V1z3zlfiY5Nh/w4rbN+5sBXKdfXxP1GI/3IyG3SaU06n+ZKAAAAAAAASoJBAAAAAAAASoJBAAAAAAAASqJn5ARYtTKdNuvSsBzHkPUblC6z9piwPOPCtE6cE+CZu9I69/woLO//zbROvD1bh3kDhnx263SZ/tG9Z/tnXsPmh4TlXGxoK2MZe2JcXHwPeymNNY3fx40mpMvE9wHO3auzEfE9hw8/J60T31t57y8Hxe3vDMuS0rirOO+BlN5XNXev9+5qP43EYrZaIzku4teRe11xvJY18Npzzx3v43U2TevEcXxDw1wRSTvO6ZdpA/F6cvfTzk0rs39MTqfFx5j4M9lIXprZmZjKOCfAiqVJlYXzo6fKhOVrn4lBce+lYU4AjUl/Gxg1f1VuKwO7/Dxcryaen69YqaM5AOrJ5aqI37+eIJc75J/ROcmGO4flgZl4+ri/GZTJCxLL5bx5OkrssMmeaZ2VUf8T78NcLpH4XGfN4Wmd+HiWO9fI5UhCz9GRuPzuzBuAUCP3rI/PQV6cnS4T91G572f1nkdK+5tDvpTWGXdAWD4yTAJw4DZ/TpeJ+8ytMvnY4nPyXE6SVp7TNum5uRIAAAAAAICSYBAAAAAAAICSYBAAAAAAAICSaE2AQxw/m4sf2e4jYblejLckrVxeex1SGoey3uZpneOjOM9bT0/rPP9QWM7Fj8Ti+2vG9/uW8vF07ZWLNW4klj++J/lVmffvM5n7lrda7r2PY5Ti9yQXFx/H3GywU1qnkfXs9umwnLtn6lM3h+U4n0WuHbzzg+m0WCtjtuP7Q5+bef/+c263bEpVcd/TSDuIl2kkJ0C/AfXr5D6TcUxcLi/Fkuim7XF8fxyDLqUx0rn7qOfiqNurkfueN7Jc7nXnXld3i48fufuUj9o2LMd9RrZ/jmK447hrSbr/52E5vl+7pHfcel1QXvTZNPZxyWVhDoDB46IKozP3Qt4uOlbtckpaJ47V7E5zp4TlHx2Y1jk7SpjQFe29vZI+IBO7/46jwnIudjYW5wFppI/KnUPtHZ3r/P26tE68njiXSC6PQJw34JE/pnVambMhfk3zpqZ1xu7bPduCFDkAmiPXB8Qa6X/iOtt+qH6d3LlX/B0pl7Pg8evD8uAol8hWh6fLNPK9qpXnF/E5wY2ZvvDIC5vy1FwJAAAAAABASTAIAAAAAABASTAIAAAAAABASbQmJ0Acr7b0tbROfJ/bRu4nvPAftdchpXEouZjO2ME/SKc9HeUNePmJsPzWy+ky8X15uyqGMo61yd3/N44/fuZvaZ2x+4Xloy6p/1zddc/5WtsQ54LI1WkkJ8KiF8JyLo6okfXE7TsXyz/jwrA8ZGT99caxUM26Z/IrT6bT3ori0O/KfCZ2Piksv+/naZ2e0H4qxfH1kjQkihVuZBs7knMiJ66Ti9mL6zTyeYhjXuOcGV0lFz+YyxMQi9+vrsiN0gxxH5HLOxOLYxRz+RjuPycsb7RbWmfbD4flBmLah511Tjox/uzOey4s5/q4+y8LyxPPr/vcHRLnpZHSuNBcXxlP+3wmln3xi2G5FTkBYs/clU4bf3BYbuSYE+djyX1+OtL/bJxph/HxIc5fkev7lkTneM2K/899tpYvDsu5vDnx687limokNwzQm+SO1/Hnt5H+Z8Fj9ZeJPy+5z088bev3p3WevTssr7NpWM5994r7rDj3QFdZ9Hw67Y3onCH3fbd/lBdv36+mdZp07syVAAAAAAAAlASDAAAAAAAAlASDAAAAAAAAlETPCGpq5P6MccxbLpZu5DZhuaviSnMx9kNGhOU4XmzL96bLxHkNOhrTET9XHKcavw852320fp2eGpcbv2+NxObF8TS5WPA4jqmr4tVz9xyO22/cNjbYKV2mWffhjuO5cvk34s/ohzP3ee4N4rYyeHj9OrG4L5LSttJVbSe3noFDw3Lctke9I12mq+JX474nue95A/GDvVn82cjFIMex5vH+eeKGdJm4P+6qz/rGe6TTdv9sWB5yZVg++tJ0mUZy8jQifr/ieO3R23XN83TVerpaEnueOfeJ68Sfsbi/ltJjfld93nPric8LXp0blnNtt1m5X+JcLNk8Dx3I/dDX+zFAaiwuP+5/ct+H4n6sq/qfl/+eTotzxMTnY7k8Pd3V/+RyzDWSd66FuBIAAAAAAICSYBAAAAAAAICSYBAAAAAAAICS6PqcAI3cL7teTLskDYjiXvsNCMu5+zw2676tubi9RvIY1JO7f3ZH7uXbVfGaPUEj98KsF5ecE79n/ddM6+TuH9wV4vs+V5vWKo3kkOgrGmkr9dpgs9pJTq79xzFmjcScxa+7kfsD5zRyr9/eKveexJa+Ub9OfK/7OD59y8PSZZp1z/rcfd7jafue0ZznzkleZ5Nedys00rfEcnl34nYYf8Zy/XWzPoeN5AVq5fGD2H2g43L9Rpy3Zc0ob1J3ft8Yu29j01qlD/Q/XAkAAAAAAEBJMAgAAAAAAEBJMAgAAAAAAEBJdC6QLBdDWe8ek1IaVzlkZFonvvdjs2ImW6kvxdM2S0fi/XPLJfeH78a4bvQcZf3M9eVY/o7IHbvi41Ijx5xcjoB6+WL64rEMHdORHEAAEOvouXKM41OpcCUAAAAAAAAlwSAAAAAAAAAlwSAAAAAAAAAl0b5gM+cau5dyPYPWql+nkfvToneJ208uPim+V3kuzok4yhJy9WPeOrLPaSflsGpFeP/jRo5Br85Npw3bICwTP1kObmWYpyh3f2j6EgBNEZ3/5PqaRvKx1VsGpcOVAAAAAAAAlASDAAAAAAAAlASDAAAAAAAAlASDAAAAAAAAlET7skKYwkQSJJVAe5iFif9IXIKGGW0BHbdG/zCJ3/w5aZ3R20UTSPoHz/pJg9dt9VYAKKUOnP9wvoQGcCUAAAAAAAAlwSAAAAAAAAAlwSAAAAAAAAAl0c6gEeJy0YVoSwBaIYn/BwAAKA+uBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCQYBAAAAAAAoCTMOdd4ZbOXJP2zeZuDPmhT59woifaDDtnUOTeKtoMOov2gozh2oTNoP+gM2g864+32U0u7BgEAAAAAAEDvRTgAAAAAAAAlwSAAAAAAAAAlwSAAAAAAAAAlwSAAAAAAAAAlwSAAAAAAAAAlwSAAAAAAAAAl0b87nuTQQ97jFix4SVq1UnJO0ipp1ariv3OSWxX9OclV1K02L7ecVkmr/BO72n/O/8n5SdH0ynJQX1GditVWe9zovGatq9F155bxbnHOHaoWOPSQ97gFL82v0jYaaQ9tbS1uR9Wm+Seu046S9uPr59pP0Ja0+mm6uv000pY6Oq+9j3tM+3nPu4v+p2bbaNv3lW0pamurVqrYibXanetY+6nWNmq1JSlpPx35/DeyP7tyXbWWyU1XS/ueQzJtp1Y/lOtbKua1tZ+qxz+XvgFV2lGuXdQ6nrW3/bR3P3XF/m/G8uqR7afWMaqibcX15cLzqKRu1H6qvWGNtJ8ax7O3l8msWjWettq8zjzuyLz2bJd6RPupcY5T81y50XbXQPuJ+qGa7aftsWrMq9J+Orqf6u3/Ruo0o82q5e0nc+7c2X6o6vFPtf9U/K/sW+SkVVXalKTa50PharukP2h0XdXqdWT5WutSk9tPtwwCLFjwsqbdfbu0bJG0YknxV/m4veW6dVdKK1T8LdPqxxVlt0JauUJavqz43/a3Ypm0YoW0qsq8yvLb893q1a+StFLScv+/7W9F9LiyvLxiuXhe5bJt61/e4Lx4fbn1tk3LLdtW9o1xZGfbQUctWPCypt01uZvazuK6baet/VRrHysybaVq28m0n1ptJ25bnWl3tebFbStXv9q8eH0tbz8vV7SfpradRdKKpfn2E7WllTXaR8P9Ttt8V38f5tpO3H7a2+5qrbdWn9ae/m5FsQtb2HYWaNq9d3aiPbS37tK6bUdd2XaW124b9dpOR9pde9pke/u7XNtST2k/TW87vv3UaTuK2sOqKu2j1ry329bKzrWdZi2b69NqzavVttQT2k+3nTtXOX5F5fhcOW4fteYFbSvTfio/w61oO7k+rda8em1LrW4/d9/eTW1nkbRiZd22o4rjUu67Vq15Sdta2fHjQ615PaXddUf7IRwAAAAAAICSYBAAAAAAAICSYBAAAAAAAICSYBAAAAAAAICSMOdc/VqdfRKzOZKWNP2JWmekpAWt3ogmG+yc264VT0z76RNoP83T19sPbae5aD9NQvvpE2g/zUX7aRLaT5/Q1PbTLXcHkLTEOTehm56r25nZtL78+qTiNbbw6Wk/vRztp3n6evuh7TQX7aepaD+9HO2nuWg/TUX76eWa3X4IBwAAAAAAoCQYBAAAAAAAoCS6axDg1930PK3S11+f1NrX2Nff377++iTaTzPx+vrmc3eXvv4aaT/N1ddfI+2nufr6a6T9NFdff41NfX3dkhgQAAAAAAC0HuEAAAAAAACURFMHAczsUDP7u5k9aWZfbeZzNZOZ/dbM5vvbbbRN28nMpprZDDObZma7++nbmNm9ZrbUzE5v3VY3zswGm9n9ZjbTzB42s+/46WZmZ5nZ42b2qJl93k8/1sxm+b97zGzHLtiGmm3FzAaZ2ZV+/n1mNq6zz9kMNd7Lzfx2P+Ffx0A/fX8zm25mK8zsgzXWO8W/PzP83+juek2ZbVnXzK4ys8d8u9jLzNYzs7/41/cXMxvu677ft5O2z8m+Vda5q5nN9vv3Z2ZmXbCdvbb/yfU5FfNONzNnZiN9OdvnVGuLPYGZjTGz2337edjMvuCnV+tXq/Y5ufbYge3pE/1PzMz6mdlDZna9L2f79MxyKyv6mmu7d6sbZ2ZfMLM5vg39p592ZkWfc6uZbVRl2RN8f/WEmZ3QhG3rlf1Pjc9mtT4++9mstp6eIvPZ2Mwyx+iK+h/0/e4EXx5nZm9VfE7O7cS29Mn+p02t45mff4CZvVbxXn6ru7exMxo51jZzH/aF9lOj36nan/t2M8PXv6PKei80s39UtK2duus1VdmeuN/5W8W2/cvM/uynd8+5s3OuKX+S+kl6StJ4SQMlzZT0zmY9XzP/JO0vaRdJcyqm3Srpvf7x+yRN8Y9HS9pN0lmSTm/1tjf4+kzSMP94gKT7JO0p6SRJF0tao+21+f97SxruH79X0n3NbiuSPiPpXP/4I5KubPX71s738veSPuKnnyvp0/7xOEk7+Pf5gzXWO0XShFa/Pr8tF0k6xT8eKGldSf8t6at+2lclne0fD9PqsKMdJD1WZZ33S9rLv383tX22mtmmevJfrs/x08dIukXSPyWN9NOyfU61ttjq1+a3Z0NJu/jHa0l6XNI7a/SrVfucXHvs6rbSW/qfzGs7TdLlkq735WyfnlluUau3vYHXtp2kOZKGqLjd8WRJW0pau6LO59v2W7TsepKe9v+H+8fDu3Dbem3/U+OzWa2Pz342q62n1a+v4nXGn43sMbpi+++UNFX+OKzi2D2nC7ajz/Y/FdufPZ5VzD+gbT/0xj81cKxt1j7sK+2nRr+T7c9VnHc+ImmsL1c7ll2oGufWLXidQb8TzfujpOP94245d27mlQC7S3rSOfe0c26ZpCskvb+Jz9c0zrk7Jb0ST5a0tn+8jqR/+brznXMPSFrefVvYOa6wyBcH+D8n6dOSvuucW+Xrzff/73HOLfT1p0rapJOb0Ehbeb+Kk31JukrSu9o94tUNaryXB6nYbql4HUf6+nOdc7Mkrerube0IM1tbxQH9N5LknFvmnHtV4f6pfH2LnO+pJA1V8V7E69xQRUd/r697cdvyndCr+58qfY4k/VjS/1PF+1itz6nRFlvOOfe8c266f/yGpEclbazq/Wq2z6nRHtujz/Q/lcxsE0mHSTq/YnK2T++l3iFpqnPuTefcCkl3SDrKOfd6RZ1snyPpEEl/cc694tvVXyQd2oXb1mv7nxqfzWp9fPazWWM9LRd/NvxnOXuM9s5UMQiypAmb0yf7n0o1jmd9QoPH2mbtwz7Rfqr1FzX6849J+pNz7hm/TI8/llU5JrfNW0tFH/RnqfvOnZs5CLCxpGcryvPUQw4AXeQ/Jf3QzJ6V9CNJZ7R4ezrFX6IyQ9J8FSdH90naXNKH/aUoN5nZlplFP6Fi9KkzGmkrb9fxJ3yvSRrRyedtivi9VDFK+6rfbqnjn4UL/KVB32xhBz5e0kt+Wx4ys/PNbKik9Z1zz0tFZ67i12lJkpkdZWaPSbpB0smZdW6s4j1p0xV9RZ/rf8xsoqTnnHMz27FM7nPdo/hLE3dW8etJI/1qZZ9TrT22R5/qfyr8RMWAUeUAYyN9uiQN9nWmmllnB+SaZY6k/c1shJkNUXHlyBhJsiLk4VlJx0rKXVrc7P6hT/Q/0Wezah9fIXs+EK2nJ4g/GyNU5RhtZjtLGuOcuz6zns18v3OHme3XwW3pq/1Pe+3lL6e/ycy2bfXGtFcDx9pm7cM+137i/qJKf76VpOFWhMo+aGbH11jlWf7S+h+b2aAmbno9uWNym6Mk/bVy0KM7zp2bOQiQ+5LSI36F6iKflvRF59wYSV+U/yWqt3LOrXTO7aRiFH93M9tO0iBJS5xzEySdJ+m3lcuY2YEqDvpf6eTTN9JWek17it9LFb9YJdXaudpjnXPbS9rP/328c1vZYf1VXNb3S+fczpIWq7g0tCrn3NXOuW1UjFCemanSjH3ba9pLI/yXnK8r/4Wmqiqf6x7DzIapuATuP/3Br2a/mulz2t0ec5uRmdZr+x9JMrPDJc13zj0YzarZp1cY6+t8TNJPzGzz5m1txzjnHpV0toqB1ptVXAa7ws/7um9Dl0n6XGbxZu/PXtVecjKfzXr1s+cD7V1Ps1X5bGT3l5mtoeLqqy9l5j+v4nOys/wlvv7KpHZvUu65O1CnN5suaVPn3I6SzpH/NbQ3aeBY26x92KfaT66/qNKf95e0q4pf1g+R9E0z2yqzyjMkbaMiZHI9df77SofUOCa3+aik31VO6I5z52YOAsyTH5X3NpG/tLOPOEHSn/zjP6j4stfr+Utpp6i4NHKeig+jJF2tIi5FkmRmO6i4pOX9zrmXO/m0jbSVt+uYWX8Vlwr36MvLKt7LPSWt67db6sBnwTn3nP//hop4ola1t3mS5lWMcl+l4kvYi/7SpLZLlJJLs/wlgZubT2gXrbMypKQr+oq+1v9sLmkzSTPNbK6K1zPdzDZoZOHoc90jmNkAFf3LZc65tr60ar9apc+p1h7boy/2P/tImujbyhWSDjKzS1WjT6/knGsLw3haRbvZucnb2yHOud8453Zxzu2vYn88EVW5XNIHMos2u3/o1f1Plc9m1T6+2vlAlfW0WvLZUPELXe4YvZaK3BNTfP09JV1rZhOcc0vbXqs/sX9Kxa+T7dUX+592cc693nY5vXPuRkkDMucJvUKNY22z9mGfaT8N9BeV/fk8STc75xY75xaoyNmRJCn3YQbOObdU0gVq3blztWOyzGyE364bcgs289y5mYMAD0ja0oqMqwNVJKPosVmGO+Bfkv7NPz5I6clHr2Fmo8xsXf94TUkHS3pMxWjsQb7av6lI1CEzG6viRP3jzrnHu2ATGmkr16r4giBJH5R0W0W8TI9R5b18VNLtKrZbKl7HNe1YZ39bnQl+gKTDVVwK2+2ccy9IetbMtvaT3qUiOUvl/nn79ZnZFm2hC2a2i4rENS9H63xe0htmtqeve7za8f5U0af6H+fcbOfcaOfcOOfcOBWd/y5+f2TV+Fy3nN/Pv5H0qHPufytmZfvVan1OjfbYHn2m/2njnDvDObeJbysfUbG9x6lKn17JzIa3XTLp+5191P73tFuYv0uKbx9HS/pdFOIwUfk2f4uk9/jXOlzSe/y0rtJr+58an81qfXz2s1ljPS1V5bNxrDLHaOfca865kRX97lRJE51z03z/2k+SzGy8iqSUT3dgk/pc/9NeZrZBxXnC7iq+m3T2x6Vu0+Cxtln7sE+0n2r9RY3+/BpJ+/nz4yGS9lBxrh2vt23g0lT8ot6qc+dqx2RJ+pCKRIFv5xzptnNn19wsiO9TcZLxlKSvN/O5mvw6fqfi0q/lKk6+PyFpX0kPqrgE8T5Ju/q6G/g6r0t61T9eu5Xb38Dr20HSQ5JmqfiAfMtPX1fFyNRsSfdK2tFPP1/SQkkz/N+0ZrQVSd9VccCVpMEqfhl8UkU2zPGtft/a+V6O99v9pH8dg/z03XwbWew/4A9XrGuG/z/Ut7VZkh6W9FNJ/Vr4GneSNM1vz59VZNceIemvKr60/VXSer7uV/w2z/BtaN/49fnHE/z79ZSkn8tnRe3qNtVb/nJ9TjR/rlbfHSDb51Rriz3hz/efzm9bWz/yPlXvV6v2Obn22BVtpTf2P1Ve2wFanQG9Wp8+QdL5/vHefv5M//8TrdjuBl/b31QMUMyU9C4/7Y++vc+SdJ2K5FLBa/Tlk/3+fFLSSU3Ytl7Z/9T4bFbr47OfzWrrafXri15r5Wcje4yO6k/R6rsDfEDFsW2misvZj+jKttJX+h+//blz6FMlnernf67ivZwqae9Wb3M7X1+1875u2Yd9of3U6Hey/blf5ssq+v85KsIH2qbfKGkj//g2FcexOZIulb+LQ4tf69v9ji9PkXRoVKdbzp3bbj8AAAAAAAD6uGaGAwAAAAAAgB6EQQAAAAAAAEqCQQAAAAAAAEqCQQAAAAAAAEqCQQAAAAAAAEqCQQAAAAAAAEqCQQAAAAAAAEqCQQAAAAAAAEri/wMQ7/eAGrKmDQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1296x216 with 14 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cmap = \"gist_heat_r\"\n",
    "mpl.rcParams.update({'font.size': 9})\n",
    "size_cbar_ticks = 10\n",
    "transparency = 0.5\n",
    "shrink = 0.8\n",
    "pad=0.05\n",
    "cmap1 = mpl.cm.gray\n",
    "cmap1.set_bad('white',alpha = 0.0)\n",
    "\n",
    "xmin, xmax, ymin, ymax = np.amin(data_final_with_na[fold,:,1]), np.amax(data_final_with_na[fold,:,1]), np.amin(data_final_with_na[fold,:,0]), np.amax(data_final_with_na[fold,:,0])\n",
    "extent = xmin, xmax, ymin, ymax\n",
    "\n",
    "fig, axs = plt.subplots(1,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(3)\n",
    "fig.set_figwidth(18)\n",
    "fig.subplots_adjust(hspace=0.2)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(7):\n",
    "\n",
    "        color_max = np.amax((((data_final_with_NOna[:,i])[~np.isnan(data_final_with_NOna[:,i])])))\n",
    "        color_min = np.amin((((data_final_with_NOna[:,i])[~np.isnan(data_final_with_NOna[:,i])])))\n",
    "\n",
    "        \n",
    "        im[i] = axs[i].imshow(data_final_with_NOna[:, i].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        \n",
    "        #axs[i].imshow(masked_array[i], interpolation='nearest', cmap = cmap1, alpha = transparency,\n",
    "          #extent=extent)\n",
    "        \n",
    "        axs[i].title.set_text(crime_list_name[i])\n",
    "        \n",
    "\n",
    "        b = bounds[i]\n",
    "        cbar = plt.colorbar(im[i], ax = axs[i],orientation=\"horizontal\", pad=pad, shrink = shrink, ticks = b)\n",
    "        cbar.ax.tick_params(labelsize=size_cbar_ticks)\n",
    "\n",
    "        axs[i].set_yticks([])\n",
    "        axs[i].set_xticks([])         \n",
    "\n",
    "    \n",
    "name = \"data_crime\" + str(cmap)\n",
    "fig.savefig(name + '.png')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot with Normal prior"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 15 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fold = 0\n",
    "task = 0\n",
    "mpl.rcParams.update({'font.size': 11})\n",
    "size_cbar_ticks = 15\n",
    "rescale = 20\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amin(final_dataset_MT_Normal[fold,:,1]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(2,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(5)\n",
    "fig.set_figwidth(20)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(14):\n",
    "\n",
    "    if i in range(0,7):\n",
    "\n",
    "\n",
    "        color_max = np.amax(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "        color_min = np.amin(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "        color_min = color_min - rescale\n",
    "\n",
    "        if i == 5:\n",
    "            color_max = np.amax(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "            color_min = np.amin(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "\n",
    "        axs[i].imshow(final_dataset_MT_Normal[fold, :, i + 9].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        axs[i].title.set_text(crime_list_name[i])\n",
    "\n",
    "        if i == 0:\n",
    "             axs[i].set_ylabel('Intensity', fontweight=\"bold\")\n",
    "\n",
    "    if i in range(7,14):\n",
    "\n",
    "        color_max = 1\n",
    "        color_min = 0 - 0.05\n",
    "        \n",
    "        axs[i].imshow(cp_LGCPN_Normal[:,i-7].reshape(N,N)*cell_inside, extent=extent, \n",
    "                      aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                      vmin = color_min, vmax = color_max)\n",
    "        if i == 13:\n",
    "            im = axs[i].imshow(cp_LGCPN_Normal[:,i-7].reshape(N,N)*cell_inside, extent=extent, \n",
    "                      aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                      vmin = color_min, vmax = color_max)\n",
    "            bounds = [0, 0.5, 1]\n",
    "            cax2 = fig.add_axes([0.88, 0.15, 0.05, 0.3], aspect=30)\n",
    "            cbar = plt.colorbar(im, cax=cax2, ticks = bounds)\n",
    "            cbar.ax.set_yticklabels(['0', '0.5', '1']) \n",
    "            cbar.ax.tick_params(labelsize=size_cbar_ticks)\n",
    "\n",
    "\n",
    "        if i == 7:\n",
    "             axs[i].set_ylabel('Cond. Prob', fontweight=\"bold\")\n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "#name = \"Figure7_LGCPN\" + str(cmap)\n",
    "#fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Plot ST learning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "cannot reshape array of size 23552 into shape (4,1024,23)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-85-5401d4a74798>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mn_folds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0minputs_dimension\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mfinal_dataset_ST_Normal\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfinal_dataset_ST_Normal\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_folds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mN_all\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mn_tasks\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;36m3\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0minputs_dimension\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 23552 into shape (4,1024,23)"
     ]
    }
   ],
   "source": [
    "n_folds = 4\n",
    "inputs_dimension = 2\n",
    "final_dataset_ST_Normal = final_dataset_ST_Normal.reshape(n_folds, N_all, (n_tasks*3 + inputs_dimension))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Conditional probabilities for ST"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "fold = 0\n",
    "cp_LGCP_ST_Normal = np.zeros((N_all,n_tasks))\n",
    "for t in xrange(n_tasks):\n",
    "    cp_LGCP_ST_Normal[:,t] = final_dataset_ST_Normal[fold,:, t + 9]/np.sum(final_dataset_ST_Normal[fold,:, 9:16], axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1512x216 with 7 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mpl.rcParams.update({'font.size': 12.8})\n",
    "size_cbar_ticks = 15\n",
    "rescale = 20\n",
    "fold = 0\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_ST_Normal[fold,:,0]), np.amax(final_dataset_ST_Normal[fold,:,0]), np.amin(final_dataset_ST_Normal[fold,:,1]), np.amax(final_dataset_ST_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(1,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(3)\n",
    "fig.set_figwidth(21)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(n_tasks):\n",
    "#     print('i',i)\n",
    "#     print('i +9',i + 9)\n",
    "#     print('to plot',final_dataset_ST_Normal[fold,:, 9 + i ][~np.isnan(final_dataset_ST_Normal[fold,:, 9 + i])])\n",
    "    color_max = np.amax((final_dataset_ST_Normal[fold,:, 9 + i ][~np.isnan(final_dataset_ST_Normal[fold,:, 9 + i])]))\n",
    "\n",
    "    color_min = np.amin((final_dataset_ST_Normal[fold,:, 9 + i][~np.isnan(final_dataset_ST_Normal[fold,:, 9 + i])]))\n",
    "#     print('min',color_max) \n",
    "#     print('max',color_min)\n",
    "\n",
    "    axs[i].imshow(final_dataset_ST_Normal[fold,:, 9 + i].reshape(N,N), extent=extent, aspect = 'auto', \n",
    "                  cmap=cmap, interpolation='None', vmin = color_min, vmax = color_max)\n",
    "    axs[i].title.set_text(crime_list_name[i])\n",
    "    if i == 0:\n",
    "        axs[i].set_ylabel('Intensity', fontweight=\"bold\")\n",
    "\n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "# name = \"Figure3\" + str(cmap)\n",
    "# fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ST learning but cell inside"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1512x216 with 7 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mpl.rcParams.update({'font.size': 12.8})\n",
    "size_cbar_ticks = 15\n",
    "rescale = 20\n",
    "fold = 0\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_ST_Normal[fold,:,0]), np.amax(final_dataset_ST_Normal[fold,:,0]), np.amin(final_dataset_ST_Normal[fold,:,1]), np.amax(final_dataset_ST_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(1,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(3)\n",
    "fig.set_figwidth(21)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(n_tasks):\n",
    "#     print('i',i)\n",
    "#     print('i +9',i + 9)\n",
    "#     print('to plot',final_dataset_ST_Normal[fold,:, 9 + i ][~np.isnan(final_dataset_ST_Normal[fold,:, 9 + i])])\n",
    "    color_max = np.amax((final_dataset_ST_Normal[fold,:, 9 + i ][~np.isnan(final_dataset_ST_Normal[fold,:, 9 + i])]))\n",
    "\n",
    "    color_min = np.amin((final_dataset_ST_Normal[fold,:, 9 + i][~np.isnan(final_dataset_ST_Normal[fold,:, 9 + i])]))\n",
    "#     print('min',color_max) \n",
    "#     print('max',color_min)\n",
    "\n",
    "    axs[i].imshow(final_dataset_ST_Normal[fold,:, 9 + i].reshape(N,N)*cell_inside, extent=extent, aspect = 'auto', \n",
    "                  cmap=cmap, interpolation='None', vmin = color_min, vmax = color_max)\n",
    "    axs[i].title.set_text(crime_list_name[i])\n",
    "    if i == 0:\n",
    "        axs[i].set_ylabel('Intensity', fontweight=\"bold\")\n",
    "\n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "# name = \"Figure3\" + str(cmap)\n",
    "# fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "bounds = [None] * n_tasks\n",
    "for t in xrange(n_tasks):\n",
    "    bounds[t] = [0,np.max(data_final_with_NOna[:,t])/2, int(np.max(data_final_with_NOna[:,t]))]\n",
    "bounds[0]\n",
    "im = [None] * n_tasks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x525.6 with 28 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fold = 0\n",
    "task = 0\n",
    "mpl.rcParams.update({'font.size': 12.8})\n",
    "size_cbar_ticks = 13\n",
    "rescale = 20\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amin(final_dataset_MT_Normal[fold,:,1]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(3,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(7.3)\n",
    "fig.set_figwidth(20)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "pad = 0.005\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(21):\n",
    "    if i in range(0,7):\n",
    "        color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9],\n",
    "                                           data_final_with_NOna[:,i][~np.isnan(data_final_with_NOna[:,i])])))\n",
    "        color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9],\n",
    "                                           data_final_with_NOna[:,i][~np.isnan(data_final_with_NOna[:,i])])))\n",
    "\n",
    "        \n",
    "        axs[i].imshow(data_final_with_NOna[:, i].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        \n",
    "        axs[i].imshow(masked_array[i], interpolation='nearest', cmap = cmap1, alpha = transparency,\n",
    "          extent=extent)\n",
    "        \n",
    "        axs[i].title.set_text(crime_list_name[i])\n",
    "        \n",
    "\n",
    "        \n",
    "        #cbar = plt.colorbar(im[i], ax = axs[i],orientation=\"horizontal\", pad=pad, shrink = shrink, ticks = b)\n",
    "        #cbar.ax.tick_params(labelsize=size_cbar_ticks)\n",
    "\n",
    "        axs[i].set_yticks([])\n",
    "        axs[i].set_xticks([])         \n",
    "        if i == 0:\n",
    "             axs[i].set_ylabel('Training obs', fontweight=\"bold\")\n",
    "\n",
    "    if i in range(7,14):\n",
    "        color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 7 ],\n",
    "                                           data_final_with_NOna[:,i-7][~np.isnan(data_final_with_NOna[:,i -7])])))\n",
    "        \n",
    "        color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 7],\n",
    "                                           data_final_with_NOna[:,i-7][~np.isnan(data_final_with_NOna[:,i -7])])))\n",
    "        color_min = color_min - rescale\n",
    "\n",
    "        if i == 12:\n",
    "            color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 7 ],\n",
    "                                           data_final_with_NOna[:,i-7][~np.isnan(data_final_with_NOna[:,i -7])])))\n",
    "        \n",
    "            color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 7],\n",
    "                                           data_final_with_NOna[:,i-7][~np.isnan(data_final_with_NOna[:,i -7])])))\n",
    "\n",
    "        axs[i].imshow(final_dataset_MT_Normal[fold, :, i + 9 - 7].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        if i == 7:\n",
    "             axs[i].set_ylabel('MCPM', fontweight=\"bold\")\n",
    "\n",
    "    if i in range(14,21):\n",
    "        color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 14], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 14 ],\n",
    "                                           data_final_with_NOna[:,i-14][~np.isnan(data_final_with_NOna[:,i -14])])))\n",
    "        \n",
    "        color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 14], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 14],\n",
    "                                           data_final_with_NOna[:,i-14][~np.isnan(data_final_with_NOna[:,i -14])])))\n",
    "        color_min = color_min - rescale\n",
    "        if i == 19:\n",
    "            color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 14], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 14 ],\n",
    "                                           data_final_with_NOna[:,i-14][~np.isnan(data_final_with_NOna[:,i -14])])))\n",
    "            color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 14], \n",
    "                                            final_dataset_ST_Normal[fold, :, i + 9 - 14],\n",
    "                                           data_final_with_NOna[:,i-14][~np.isnan(data_final_with_NOna[:,i -14])])))\n",
    "\n",
    "        im[i - 14] = axs[i].imshow(final_dataset_ST_Normal[fold,:, 9 + i - 14].reshape(N,N)*cell_inside, extent=extent, \n",
    "                      aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                      vmin = color_min, vmax = color_max)\n",
    "\n",
    "\n",
    "        if i == 14:\n",
    "             axs[i].set_ylabel('LGCP', fontweight=\"bold\")\n",
    "\n",
    "        b = bounds[i-14]\n",
    "        #cbar = plt.colorbar(im[i-14], ax = axs[i],orientation=\"horizontal\", pad=pad, shrink = shrink, ticks = b)\n",
    "        #cbar.ax.tick_params(labelsize=size_cbar_ticks)\n",
    "        if i == 14:\n",
    "\n",
    "            cbaxes1 = fig.add_axes([0.14, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes1, orientation=\"horizontal\", ticks = b)\n",
    "        if i == 15:\n",
    "            cbaxes2 = fig.add_axes([0.25, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes2, orientation=\"horizontal\", ticks = b)  \n",
    "        if i == 16:\n",
    "            cbaxes3 = fig.add_axes([0.36, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes3, orientation=\"horizontal\", ticks = b)  \n",
    "\n",
    "        if i == 17:\n",
    "            cbaxes4 = fig.add_axes([0.47, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes4, orientation=\"horizontal\", ticks = b)  \n",
    "\n",
    "        if i == 18:\n",
    "            cbaxes5 = fig.add_axes([0.58, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes5, orientation=\"horizontal\", ticks = b)  \n",
    "        if i == 19:\n",
    "            cbaxes6 = fig.add_axes([0.695, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes6, orientation=\"horizontal\", ticks = b)  \n",
    "        if i == 20:\n",
    "            cbaxes7 = fig.add_axes([0.805, 0.09, 0.08, 0.015])\n",
    "            fig.colorbar(im[i-14], cax = cbaxes7, orientation=\"horizontal\", ticks = b)  \n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "#name = \"all_crime\" + str(cmap)\n",
    "#fig.savefig(name + '.png')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot LGCPN - ICM for NIPS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "mu = np.load('../Data/crime_experiments/posterior_mean.npy')\n",
    "var = np.load('../Data/crime_experiments/posterior_var.npy')\n",
    "\n",
    "posterior_mean = np.exp(mu + 0.5*var)\n",
    "posterior_var = (np.exp(var) - 1.)*np.exp(2.0*mu + var)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 14 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fold = 0\n",
    "task = 0\n",
    "mpl.rcParams.update({'font.size': 11.5})\n",
    "size_cbar_ticks = 15\n",
    "rescale = 20\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amin(final_dataset_MT_Normal[fold,:,1]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(2,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(5)\n",
    "fig.set_figwidth(20)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(14):\n",
    "\n",
    "\n",
    "    if i in range(0,7):\n",
    "        color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9], posterior_mean[fold, :, i])))\n",
    "        color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9], posterior_mean[fold, :, i])))\n",
    "        \n",
    "#         color_max = np.amax(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "#         color_min = np.amin(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "        color_min = color_min - rescale\n",
    "        if i == 5:\n",
    "            color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9], posterior_mean[fold, :, i])))\n",
    "            color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9], posterior_mean[fold, :, i])))\n",
    "            \n",
    "#             color_max = np.amax(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "#             color_min = np.amin(final_dataset_MT_Normal[fold, :, i + 9])\n",
    "\n",
    "#         print('max', color_max)\n",
    "#         print('min', color_min)\n",
    "        axs[i].imshow(final_dataset_MT_Normal[fold, :, i + 9].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        axs[i].title.set_text(crime_list_name[i])\n",
    "\n",
    "        if i == 0:\n",
    "             axs[i].set_ylabel('LGCPN', fontweight=\"bold\")\n",
    "\n",
    "    if i in range(7,14):\n",
    "\n",
    "        color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], posterior_mean[fold, :, i-7])))\n",
    "        color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], posterior_mean[fold, :, i-7])))\n",
    "        color_min = color_min - rescale\n",
    "        if i == 12:\n",
    "            color_max = np.amax(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], posterior_mean[fold, :, i-7])))\n",
    "            color_min = np.amin(np.concatenate((final_dataset_MT_Normal[fold, :, i + 9 - 7], posterior_mean[fold, :, i-7])))\n",
    "            \n",
    "        axs[i].imshow(posterior_mean[fold,:, i - 7].reshape(N,N)*cell_inside, extent=extent, \n",
    "                      aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                      vmin = color_min, vmax = color_max)\n",
    "\n",
    "\n",
    "        if i == 7:\n",
    "             axs[i].set_ylabel('ICM', fontweight=\"bold\")\n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "name = \"crime_NLPL_ICM\" + str(cmap)\n",
    "fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "fold = 0\n",
    "cp_ICM = np.zeros((N_all,n_tasks))\n",
    "for t in xrange(n_tasks):\n",
    "    cp_ICM[:,t] = posterior_mean[fold,:, t]/np.sum(posterior_mean[fold,:, :], axis = 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot of cond prob for appendix\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 14 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fold = 0\n",
    "task = 0\n",
    "mpl.rcParams.update({'font.size': 12.8})\n",
    "size_cbar_ticks = 15\n",
    "rescale = 20\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amin(final_dataset_MT_Normal[fold,:,1]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(2,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(5)\n",
    "fig.set_figwidth(20)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(14):\n",
    "\n",
    "    color_max = 1\n",
    "    color_min = 0 - 0.05\n",
    "    if i in range(0,7):\n",
    "        axs[i].imshow(cp_LGCPN_Normal[:,i].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        axs[i].title.set_text(crime_list_name[i])\n",
    "\n",
    "        if i == 0:\n",
    "             axs[i].set_ylabel('Cond. prob. MT', fontweight=\"bold\")\n",
    "\n",
    "    if i in range(7,14):\n",
    "\n",
    "\n",
    "        axs[i].imshow(cp_LGCP_ST_Normal[:, i - 7].reshape(N,N)*cell_inside, extent=extent, \n",
    "                      aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                      vmin = color_min, vmax = color_max)\n",
    "\n",
    "\n",
    "        if i == 7:\n",
    "             axs[i].set_ylabel('Cond. prob. ST', fontweight=\"bold\")\n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "#name = \"Figure_appendix_crime_condprob_MT_ST\" + str(cmap)\n",
    "#fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 14 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fold = 0\n",
    "task = 0\n",
    "mpl.rcParams.update({'font.size': 12.8})\n",
    "size_cbar_ticks = 15\n",
    "rescale = 20\n",
    "cmap = \"gist_heat_r\"\n",
    "inducing = 'ind'\n",
    "norm = mpl.colors.Normalize(vmin=-100.,vmax=100)\n",
    "\n",
    "extent = (np.amin(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,0]), \n",
    "          np.amin(final_dataset_MT_Normal[fold,:,1]), \n",
    "          np.amax(final_dataset_MT_Normal[fold,:,1]))\n",
    "\n",
    "fig, axs = plt.subplots(2,7, sharex = 'col', sharey = 'row')\n",
    "fig.set_figheight(5)\n",
    "fig.set_figwidth(20)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "\n",
    "axs = axs.ravel()\n",
    "\n",
    "for i in range(14):\n",
    "\n",
    "    color_max = 1\n",
    "    color_min = 0 - 0.05\n",
    "    if i in range(0,7):\n",
    "        axs[i].imshow(cp_LGCPN_Normal[:,i].reshape(N,N)*cell_inside, extent=extent, \n",
    "                 aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                 vmin = color_min, vmax = color_max)\n",
    "        axs[i].title.set_text(crime_list_name[i])\n",
    "\n",
    "        if i == 0:\n",
    "             axs[i].set_ylabel('MCPM', fontweight=\"bold\")\n",
    "\n",
    "    if i in range(7,14):\n",
    "\n",
    "\n",
    "        axs[i].imshow(cp_ICM[:, i - 7].reshape(N,N)*cell_inside, extent=extent, \n",
    "                      aspect = 'auto', cmap=cmap, interpolation='None',\n",
    "                      vmin = color_min, vmax = color_max)\n",
    "\n",
    "\n",
    "        if i == 7:\n",
    "             axs[i].set_ylabel('ICM', fontweight=\"bold\")\n",
    "\n",
    "    axs[i].grid(False)\n",
    "    axs[i].set_yticks([]) \n",
    "    axs[i].set_xticks([]) \n",
    "    axs[i].grid(False)\n",
    "    \n",
    "#name = \"Figure_appendix_crime_condprob_LGCPN_ICM\" + str(cmap)\n",
    "#fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluation of performance for MT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "mean_outputs = np.mean(outputs, axis = 0)\n",
    "range_outputs = np.ptp(outputs, axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "cell_inside = np.loadtxt('../Data/crime_experiments/cell_inside_ny')\n",
    "cell_inside = cell_inside.reshape(N,N)\n",
    "cell_inside[cell_inside == 0] = np.nan"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "cell_inside[~np.isnan(cell_inside)] = True\n",
    "cell_inside[np.isnan(cell_inside)] = False\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "MT_RMSE_results = np.zeros((n_tasks))\n",
    "MT_NLPL_results = np.zeros((n_tasks))\n",
    "MT_RMSE_results_inter = np.zeros((n_tasks, n_folds))\n",
    "MT_NLPL_results_inter = np.zeros((n_tasks, n_folds))\n",
    "\n",
    "MT_GP_NLPL_results = np.zeros((n_tasks))\n",
    "MT_GP_RMSE_results = np.zeros((n_tasks))\n",
    "MT_GP_NLPL_results_inter = np.zeros((n_tasks, n_folds))\n",
    "MT_GP_RMSE_results_inter = np.zeros((n_tasks, n_folds))\n",
    "\n",
    "\n",
    "ST_RMSE_results = np.zeros((n_tasks))\n",
    "ST_NLPL_results = np.zeros((n_tasks))\n",
    "ST_RMSE_results_inter = np.zeros((n_tasks, n_folds))\n",
    "ST_NLPL_results_inter = np.zeros((n_tasks, n_folds))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "index 1 is out of bounds for axis 0 with size 1",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-94-3eed8975103d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      8\u001b[0m         \u001b[0mtrue_counts\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0moutputs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcond\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      9\u001b[0m         \u001b[0;31m#print('true counts size', true_counts.shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m         \u001b[0mpred_counts\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0mfinal_dataset_MT_Normal\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcond\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m9\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     11\u001b[0m \u001b[0;31m#         print('fold', fold)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     12\u001b[0m \u001b[0;31m#         print('task', task)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: index 1 is out of bounds for axis 0 with size 1"
     ]
    }
   ],
   "source": [
    "for task in xrange(n_tasks):\n",
    "    for fold in xrange(n_folds):\n",
    "        fold_task_subset = data_final_with_na[fold,:,task+2]\n",
    "        #cond = np.isnan(fold_task_subset)\n",
    "        cond = np.logical_and(cell_inside, np.isnan(fold_task_subset).reshape(N,N)).reshape(N_all,1)[:,0]\n",
    "\n",
    "        # this is step is to consider cells inside, in this case they are all considered inside. \n",
    "        true_counts =  outputs[cond,task]\n",
    "        #print('true counts size', true_counts.shape)\n",
    "        pred_counts =  final_dataset_MT_Normal[fold,cond,task+9]\n",
    "#         print('fold', fold)\n",
    "#         print('task', task)\n",
    "#         print('pred counts size', pred_counts.shape[0])\n",
    "        if pred_counts.shape[0] == 0:\n",
    "            MT_NLPL_results_inter[task,fold] = np.nan\n",
    "            MT_RMSE_results_inter[task,fold] = np.nan \n",
    "        else:\n",
    "#             print('true_counts', true_counts)\n",
    "#             print('pred_counts', pred_counts)\n",
    "#             print('pred_counts.shape[0]', pred_counts.shape[0])\n",
    "#             print('ratio 1', np.sum(np.square(true_counts - pred_counts)))\n",
    "#             print('ratio', np.sum(np.square(true_counts - pred_counts))/pred_counts.shape[0])\n",
    "#             print('ratio 2', np.sqrt(np.sum(np.square(true_counts - pred_counts))/pred_counts.shape[0]))\n",
    "#             print('ratio 3', np.sqrt(np.sum(np.square(true_counts - pred_counts))))\n",
    "#             print('np.sum(np.square(true_counts - pred_counts)', np.sqrt(np.sum(np.square(true_counts - pred_counts))/pred_counts.shape[0]))\n",
    "            \n",
    "            MT_NLPL_results_inter[task,fold] = - np.sum(poisson.logpmf(true_counts, pred_counts))/pred_counts.shape[0]\n",
    "            MT_RMSE_results_inter[task,fold] = np.sqrt(np.sum(np.square(true_counts - pred_counts))/pred_counts.shape[0])        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('MT_RMSE_results mean', array([1.80894733, 0.        , 0.        , 0.        , 0.        ,\n",
      "       0.        , 0.        ]))\n",
      "('MT_NLPL_results mean', array([0.64160641, 0.        , 0.        , 0.        , 0.        ,\n",
      "       0.        , 0.        ]))\n"
     ]
    }
   ],
   "source": [
    "for t in xrange(n_tasks):\n",
    "    MT_RMSE_results[t] = np.mean(MT_RMSE_results_inter[t][~np.isnan(MT_RMSE_results_inter[t])]/mean_outputs[t])\n",
    "    MT_NLPL_results[t] = np.mean(MT_NLPL_results_inter[t][~np.isnan(MT_NLPL_results_inter[t])]/mean_outputs[t])\n",
    "print('MT_RMSE_results mean', MT_RMSE_results)\n",
    "print('MT_NLPL_results mean', MT_NLPL_results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "index 1 is out of bounds for axis 0 with size 1",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-97-4054d23b1327>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      8\u001b[0m         \u001b[0mtrue_counts\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0moutputs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcond\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      9\u001b[0m \u001b[0;31m#         print('true counts size', true_counts.shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m         \u001b[0mpred_counts\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0mfinal_dataset_MT_GP\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcond\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m9\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     11\u001b[0m \u001b[0;31m#         print('pred counts size', pred_counts.shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     12\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mpred_counts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: index 1 is out of bounds for axis 0 with size 1"
     ]
    }
   ],
   "source": [
    "for fold in xrange(n_folds):\n",
    "\n",
    "    for task in xrange(n_tasks):\n",
    "        fold_task_subset = data_final_with_na[fold,:,task+2]\n",
    "        cond = np.logical_and(cell_inside, np.isnan(fold_task_subset).reshape(N,N)).reshape(N_all,1)[:,0]\n",
    "\n",
    "        # this is step is to consider cells inside, in this case they are all considered inside. \n",
    "        true_counts =  outputs[cond,task]\n",
    "#         print('true counts size', true_counts.shape)\n",
    "        pred_counts =  final_dataset_MT_GP[fold,cond,task+9]\n",
    "#         print('pred counts size', pred_counts.shape)\n",
    "        if pred_counts.shape[0] == 0:\n",
    "            MT_GP_NLPL_results_inter[task,fold] = np.nan\n",
    "            MT_GP_RMSE_results_inter[task,fold] = np.nan \n",
    "        else:\n",
    "            MT_GP_NLPL_results_inter[task,fold] = - np.sum(poisson.logpmf(true_counts, pred_counts))/pred_counts.shape[0]\n",
    "            MT_GP_RMSE_results_inter[task,fold] = np.sqrt(np.sum(np.square(true_counts - pred_counts))/pred_counts.shape[0])             \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('MT_GP_RMSE_results mean', array([1.80894733, 0.89895266, 0.35498737, 0.27577131, 2.91271585,\n",
      "       3.10880276, 0.7739915 ]))\n",
      "('MT_GP_NLPL_results mean', array([0.64160641, 0.33595044, 0.11337679, 0.13704659, 0.80778756,\n",
      "       2.78668406, 0.28343501]))\n"
     ]
    }
   ],
   "source": [
    "for t in xrange(n_tasks):\n",
    "    MT_GP_RMSE_results[t] = np.mean(MT_GP_RMSE_results_inter[t][~np.isnan(MT_GP_RMSE_results_inter[t])]/mean_outputs[t])\n",
    "    MT_GP_NLPL_results[t] = np.mean(MT_GP_NLPL_results_inter[t][~np.isnan(MT_GP_NLPL_results_inter[t])]/mean_outputs[t])\n",
    "print('MT_GP_RMSE_results mean', MT_GP_RMSE_results)\n",
    "print('MT_GP_NLPL_results mean', MT_GP_NLPL_results)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "index 1 is out of bounds for axis 0 with size 1",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-99-0ead4da5a3c6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      7\u001b[0m         \u001b[0;31m# this is step is to consider cells inside, in this case they are all considered inside.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m         \u001b[0mtrue_counts\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0moutputs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcond\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m         \u001b[0mpred_counts\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0mfinal_dataset_ST_Normal\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcond\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m9\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     10\u001b[0m \u001b[0;31m#         print('true counts size', true_counts.shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     11\u001b[0m \u001b[0;31m#         print('pred counts size', pred_counts.shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: index 1 is out of bounds for axis 0 with size 1"
     ]
    }
   ],
   "source": [
    "for fold in xrange(n_folds):\n",
    "\n",
    "    for task in xrange(n_tasks):\n",
    "        fold_task_subset = data_final_with_na[fold,:,task+2]\n",
    "        cond = np.logical_and(cell_inside, np.isnan(fold_task_subset).reshape(N,N)).reshape(N_all,1)[:,0]\n",
    "\n",
    "        # this is step is to consider cells inside, in this case they are all considered inside. \n",
    "        true_counts =  outputs[cond,task]\n",
    "        pred_counts =  final_dataset_ST_Normal[fold,cond,task+9]\n",
    "#         print('true counts size', true_counts.shape)\n",
    "#         print('pred counts size', pred_counts.shape)\n",
    "        if pred_counts.shape[0] == 0:\n",
    "            ST_NLPL_results_inter[task,fold] = np.nan\n",
    "            MST_RMSE_results_inter[task,fold] = np.nan \n",
    "        else:\n",
    "            ST_NLPL_results_inter[task,fold] = - np.sum(poisson.logpmf(true_counts, pred_counts))/pred_counts.shape[0]\n",
    "            ST_RMSE_results_inter[task,fold] = np.sqrt(np.sum(np.square(true_counts - pred_counts))/pred_counts.shape[0])             \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('ST_RMSE_results mean', array([ 3.0119559 ,  1.77884006,  0.86543316,  0.51074284,  5.85263881,\n",
      "       32.49430087,  1.3628417 ]))\n",
      "('ST_NLPL_results mean', array([ 6.60087798,  2.75918012,  1.72231316,  0.42688301, 23.3893895 ,\n",
      "       31.3878713 ,  2.04905005]))\n"
     ]
    }
   ],
   "source": [
    "for t in xrange(n_tasks):\n",
    "    ST_RMSE_results[t] = np.mean(ST_RMSE_results_inter[t][~np.isnan(ST_RMSE_results_inter[t])]/mean_outputs[t])\n",
    "    ST_NLPL_results[t] = np.mean(ST_NLPL_results_inter[t][~np.isnan(ST_NLPL_results_inter[t])]/mean_outputs[t])\n",
    "print('ST_RMSE_results mean', ST_RMSE_results)\n",
    "print('ST_NLPL_results mean', ST_NLPL_results)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Alternative computation of NLPL\n",
    "# Use this if you want to compute the NLPL performance sampling from the posterior distrbutions\n",
    "# Same can be repeated for ST and MT_GP results\n",
    "np.random.seed(1)\n",
    "n_samples = 10\n",
    "intensity_sample = np.zeros((n_folds, n_samples, N_all,n_tasks ))\n",
    "latent_fun_sample = np.zeros((n_folds, n_samples, N_all,n_latent ))\n",
    "weights_sample = np.zeros((n_folds, n_samples, n_tasks,n_latent ))\n",
    "nlpl_fold_task = np.zeros((n_folds, n_samples, n_tasks))\n",
    "first_std = np.zeros((n_folds, n_tasks))\n",
    "first_mean = np.zeros((n_folds, n_tasks))\n",
    "std = np.zeros(( n_tasks))\n",
    "mean = np.zeros((n_tasks))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "index 1 is out of bounds for axis 0 with size 1",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-117-1942c8fb037d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mfold\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mxrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_folds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0mtask\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mxrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_tasks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m         \u001b[0mlatent_means\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlatent_means_MT_Normal\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      4\u001b[0m         \u001b[0mlatent_vars\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlatent_vars_MT_Normal\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m         \u001b[0mmeans_w\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmeans_w_MT_Normal\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: index 1 is out of bounds for axis 0 with size 1"
     ]
    }
   ],
   "source": [
    "for fold in xrange(n_folds):\n",
    "    for task in xrange(n_tasks):\n",
    "        latent_means = latent_means_MT_Normal[fold]\n",
    "        latent_vars = latent_vars_MT_Normal[fold]\n",
    "        means_w = np.transpose(means_w_MT_Normal[fold])\n",
    "        vars_w = vars_w_MT_Normal[fold]\n",
    "        diagonal_variance = np.zeros((n_latent, n_tasks))\n",
    "        for q in xrange(n_latent):\n",
    "            diagonal_variance[q] = np.diagonal(vars_w[q])\n",
    "    \n",
    "        latent_fun_sample[fold] = np.random.normal(latent_means, np.sqrt(latent_vars), size = (n_samples, N_all, n_latent))\n",
    "        weights_sample[fold] = np.random.normal(means_w, np.transpose(np.sqrt(diagonal_variance)), size = (n_samples, n_tasks, n_latent))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "index 1 is out of bounds for axis 0 with size 1",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-118-bcef86106f02>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      2\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mxrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_samples\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m         intensity_sample[fold, i] = np.exp(np.transpose(np.dot(weights_sample[fold, i],\n\u001b[0;32m----> 4\u001b[0;31m                                                                np.transpose(latent_fun_sample[fold, i]))) + offsets_MT_Normal[fold])\n\u001b[0m\u001b[1;32m      5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: index 1 is out of bounds for axis 0 with size 1"
     ]
    }
   ],
   "source": [
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "        intensity_sample[fold, i] = np.exp(np.transpose(np.dot(weights_sample[fold, i],\n",
    "                                                               np.transpose(latent_fun_sample[fold, i]))) + offsets_MT_Normal[fold])\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda2/lib/python2.7/site-packages/numpy/core/_methods.py:117: RuntimeWarning: invalid value encountered in subtract\n",
      "  x = asanyarray(arr - arrmean)\n"
     ]
    }
   ],
   "source": [
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "        for task in xrange(n_tasks):\n",
    "            fold_task_subset = data_final_with_na[fold,:,task+2]\n",
    "            cond = np.logical_and(cell_inside, np.isnan(fold_task_subset).reshape(N,N)).reshape(N_all,1)[:,0]\n",
    "\n",
    "            true_counts =  outputs[cond,task]\n",
    "            pred_counts = intensity_sample[fold, i, :,task][cond]\n",
    "            if pred_counts.shape[0] == 0:\n",
    "                nlpl_fold_task[fold,i,task] = np.nan\n",
    "            else:\n",
    "                nlpl_fold_task[fold,i,task] = - np.sum(poisson.logpmf(true_counts, pred_counts))/pred_counts.shape[0]  \n",
    "\n",
    "for f in xrange(n_folds):\n",
    "    for t in xrange(n_tasks):\n",
    "#         print('f', f)\n",
    "#         print('t', t)\n",
    "        # This is computing the mean and std across S\n",
    "        first_std[f,t] = np.std(nlpl_fold_task[f, :, t][~np.isnan(nlpl_fold_task[f, :, t])])\n",
    "#         print('first_std', first_std[f,t])\n",
    "        first_mean[f,t] = np.mean(nlpl_fold_task[f, :, t][~np.isnan(nlpl_fold_task[f, :, t])])\n",
    "#         print('first_mean', first_mean[f,t])\n",
    "        \n",
    "for t in xrange(n_tasks):\n",
    "    # This is computing the mean and std across folds\n",
    "    std[t] = np.std(first_mean[:,t][~np.isnan(first_mean[:,t])]/mean_outputs[t])/np.sqrt(n_folds)\n",
    "    mean[t] = np.mean(first_mean[:,t][~np.isnan(first_mean[:,t])]/mean_outputs[t])\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([inf, inf, inf, inf, inf, inf, inf])"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([nan, nan, nan, nan, nan, nan, nan])"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "std"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Costruct histograms for MT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "shape mismatch: objects cannot be broadcast to a single shape",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-125-e6ed5c9a7f7c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     22\u001b[0m         \u001b[0mvars_w\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvars_w_MT_Normal\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     23\u001b[0m         \u001b[0mlatent_fun_sample\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlatent_means\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlatent_vars\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mn_samples\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mN_all\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_latent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 24\u001b[0;31m         \u001b[0mweights_sample\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmeans_w\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvars_w\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mn_samples\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_tasks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_latent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     26\u001b[0m \u001b[0;31m# Generate samples for the intensity\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mmtrand.pyx\u001b[0m in \u001b[0;36mmtrand.RandomState.normal\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mmtrand.pyx\u001b[0m in \u001b[0;36mmtrand.cont2_array\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: shape mismatch: objects cannot be broadcast to a single shape"
     ]
    }
   ],
   "source": [
    "# Histograms for MT\n",
    "n_samples = 1\n",
    "divide = 1\n",
    "intensity_sample = np.zeros((n_folds, n_samples, N_all,n_tasks))\n",
    "latent_fun_sample = np.zeros((n_folds, n_samples, N_all,n_latent))\n",
    "weights_sample = np.zeros((n_folds, n_samples, n_tasks,n_latent))\n",
    "counts_to_aggregate = np.zeros((n_folds, n_samples, N_all,n_tasks))\n",
    "counts_alternative = np.zeros((n_folds, n_samples, n_tasks))\n",
    "\n",
    "\n",
    "counts_missing_to_aggregate = np.zeros((n_folds, (N_all/4), n_samples,n_tasks))\n",
    "counts_NONmissing_to_aggregate = np.zeros((n_folds, N_all-(N_all/4), n_samples,n_tasks))\n",
    "outputs_missing_to_aggregate = np.zeros((n_folds, N_all/4,n_tasks))\n",
    "\n",
    "\n",
    "# Sample from latent function and weights\n",
    "for fold in xrange(n_folds):\n",
    "    for task in xrange(n_tasks):\n",
    "        latent_means = latent_means_MT_Normal[fold]\n",
    "        latent_vars = latent_vars_MT_Normal[fold]\n",
    "        means_w = means_w_MT_Normal[fold]\n",
    "        vars_w = vars_w_MT_Normal[fold]\n",
    "        latent_fun_sample[fold] = np.random.normal(latent_means, np.sqrt(latent_vars), size = (n_samples, N_all, n_latent)) \n",
    "        weights_sample[fold] = np.random.normal(means_w, np.sqrt(vars_w), size = (n_samples, n_tasks, n_latent))\n",
    "\n",
    "# Generate samples for the intensity \n",
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "        intensity_sample[fold, i] = np.exp(np.transpose(np.dot(weights_sample[fold, i],\n",
    "                                                               np.transpose(latent_fun_sample[fold, i]))) + offsets_MT_Normal[fold])\n",
    "\n",
    "# Sample from Poisson with generated intensity and aggregates counts per cells to have overall\n",
    "# number of events in the area\n",
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "        for t in xrange(n_tasks):\n",
    "            #print('lambda', intensity_sample[fold, i,:,t])\n",
    "            #print('lambda2', np.sum(intensity_sample, axis = 2))\n",
    "            counts_to_aggregate[fold, i,:,t] = np.random.poisson(intensity_sample[fold, i,:,t]/divide)\n",
    "counts = np.sum(counts_to_aggregate, axis = 2)\n",
    "\n",
    "# Sample from Poisson(sum lambda)\n",
    "sum_intensity = np.sum(intensity_sample, axis = 2)\n",
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "        for t in xrange(n_tasks):\n",
    "            #print('lambda', sum_intensity[fold, i, t])\n",
    "            counts_alternative[fold, i, t] = np.random.poisson(sum_intensity[fold, i, t]/divide)\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "# Aggregate only events for the missing data region \n",
    "for fold in xrange(n_folds):\n",
    "    for task in xrange(n_tasks):        \n",
    "        counts_missing_to_aggregate[fold, :,:,task] = counts_to_aggregate[fold,:,np.isnan(data_final_with_na[fold,:,task + 2]),task]\n",
    "        counts_NONmissing_to_aggregate[fold, :,:,task] = counts_to_aggregate[fold,:,~np.isnan(data_final_with_na[fold,:,task + 2]),task]\n",
    "\n",
    "counts_missing_region = np.sum(counts_missing_to_aggregate, axis = 1)/divide\n",
    "counts_NONmissing_region = np.sum(counts_NONmissing_to_aggregate, axis = 1)\n",
    "\n",
    "# Select data for the missing data region \n",
    "for fold in xrange(n_folds):\n",
    "    for task in xrange(n_tasks):\n",
    "        output_missing = outputs[np.isnan(data_final_with_na[fold,:,2+task]), task]\n",
    "        #output_missing = output_missing.reshape(N_all/4,n_tasks)\n",
    "        outputs_missing_to_aggregate[fold,:,task] = output_missing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Plot histogram for ICM\n",
    "mu = np.load('../Data/crime_experiments/posterior_mean.npy')\n",
    "var = np.load('../Data/crime_experiments/posterior_var.npy')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Histograms for ICM\n",
    "n_samples = 1000\n",
    "divide = 1\n",
    "intensity_sample = np.zeros((n_folds, n_samples, N_all,n_tasks))\n",
    "latent_fun_sample = np.zeros((n_folds, n_samples, N_all,n_latent))\n",
    "weights_sample = np.zeros((n_folds, n_samples, n_tasks,n_latent))\n",
    "counts_to_aggregate = np.zeros((n_folds, n_samples, N_all,n_tasks))\n",
    "counts_alternative = np.zeros((n_folds, n_samples, n_tasks))\n",
    "\n",
    "\n",
    "counts_missing_to_aggregate = np.zeros((n_folds, (N_all/4), n_samples,n_tasks))\n",
    "outputs_missing_to_aggregate = np.zeros((n_folds, N_all/4,n_tasks))\n",
    "outputs_NONmissing_to_aggregate = np.zeros((n_folds,N_all- N_all/4,n_tasks))\n",
    "\n",
    "# Simulate from the log normal with mean m_f and variance sigma_f\n",
    "# This gives sample for the intensity \n",
    "\n",
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "        latent_means = mu[fold]\n",
    "        latent_vars = var[fold]\n",
    "        intensity_sample[fold, i] = np.random.lognormal(mean=latent_means, sigma=np.sqrt(latent_vars))\n",
    "        \n",
    "# Simulate the counts\n",
    "for fold in xrange(n_folds):\n",
    "    for i in xrange(n_samples):\n",
    "         counts_to_aggregate[fold, i] = np.random.poisson(intensity_sample[fold, i])\n",
    "counts = np.sum(counts_to_aggregate, axis = 2) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "could not broadcast input array from shape (768,1000) into shape (768,1)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-128-9d34bfff1f63>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0mtask\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mxrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_tasks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m         \u001b[0mcounts_missing_to_aggregate\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcounts_to_aggregate\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misnan\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_final_with_na\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m         \u001b[0mcounts_NONmissing_to_aggregate\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcounts_to_aggregate\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m~\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misnan\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_final_with_na\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: could not broadcast input array from shape (768,1000) into shape (768,1)"
     ]
    }
   ],
   "source": [
    "# Subset the counts to aggregate\n",
    "# Aggregate only events for the missing data region \n",
    "for fold in xrange(n_folds):\n",
    "    for task in xrange(n_tasks):        \n",
    "        counts_missing_to_aggregate[fold, :,:,task] = counts_to_aggregate[fold,:,np.isnan(data_final_with_na[fold,:,task + 2]),task]\n",
    "        counts_NONmissing_to_aggregate[fold, :,:,task] = counts_to_aggregate[fold,:,~np.isnan(data_final_with_na[fold,:,task + 2]),task]\n",
    "\n",
    "\n",
    "counts_missing_region = np.sum(counts_missing_to_aggregate, axis = 1)\n",
    "counts_NONmissing_region = np.sum(counts_NONmissing_to_aggregate, axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select data for the missing data region \n",
    "for fold in xrange(n_folds):\n",
    "    for task in xrange(n_tasks):\n",
    "        output_missing = outputs[np.isnan(data_final_with_na[fold,:,2+task]), task]\n",
    "        output_NONmissing = outputs[~np.isnan(data_final_with_na[fold,:,2+task]), task]\n",
    "        \n",
    "        #output_missing = output_missing.reshape(N_all/4,n_tasks)\n",
    "        outputs_missing_to_aggregate[fold,:,task] = output_missing\n",
    "        outputs_NONmissing_to_aggregate[fold,:,task] = output_NONmissing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "task = 0\n",
    "fold = 0 \n",
    "counts_observed = np.sum(outputs, axis = 0)\n",
    "counts_missing = np.sum(outputs_missing_to_aggregate, axis = 1)\n",
    "counts_NONmissing = np.sum(outputs_NONmissing_to_aggregate, axis = 1)\n",
    "\n",
    "intensity_aggregated = np.sum(intensity_sample, axis = 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'counts_missing_region' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-131-38e8d168549f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mICM_counts_missing\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0mcounts_missing_region\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mICM_counts_NONmissing\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcounts_NONmissing_region\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'counts_missing_region' is not defined"
     ]
    }
   ],
   "source": [
    "ICM_counts_missing =  counts_missing_region\n",
    "ICM_counts_NONmissing = counts_NONmissing_region"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'LGCPN_counts_non_missing' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-132-53197d1267ff>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      9\u001b[0m \u001b[0mvertical_line_wid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2.5\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mLGCPN_counts_non_missing\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.75\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'w'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0medgecolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'k'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     12\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxvline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcounts_NONmissing\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcolor_line_obs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvertical_line_wid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Observed N'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     13\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxvline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpercentile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mLGCPN_counts_non_missing\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfold\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtask\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m95\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'r'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlinestyle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'dashed'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlinewidth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvertical_line_wid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'LGCPN_counts_non_missing' is not defined"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,4)\n",
    "fig.set_figheight(5)\n",
    "fig.set_figwidth(15)\n",
    "fig.subplots_adjust(hspace=0.02)\n",
    "fig.subplots_adjust(wspace=0.02)\n",
    "label_size = 11\n",
    "color_line_mean = 'black'\n",
    "color_line_obs = 'lime'\n",
    "vertical_line_wid = 2.5\n",
    "\n",
    "n, b, p = ax[0].hist(LGCPN_counts_non_missing[fold, :, task], 100, alpha=0.75, color='w', edgecolor='k')\n",
    "ax[0].axvline(counts_NONmissing[fold, task], color=color_line_obs, linewidth=vertical_line_wid, label='Observed N')\n",
    "ax[0].axvline(np.percentile(LGCPN_counts_non_missing[fold, :, task], 95), color='r', linestyle='dashed', linewidth=vertical_line_wid)\n",
    "ax[0].axvline(np.percentile(LGCPN_counts_non_missing[fold, :, task], 5), color='r', linestyle='dashed', linewidth=vertical_line_wid, label='90% CI')\n",
    "ax[0].axvline(np.percentile(LGCPN_counts_non_missing[fold, :, task], 50), color=color_line_mean, linestyle='dashed', linewidth=vertical_line_wid, label='Post. mean')\n",
    "ax[0].set_yticks([]) \n",
    "#ax[0].set_xlim([8000,16000])\n",
    "ax[0].legend(loc=8)\n",
    "ax[0].tick_params(axis = 'both', which = 'major', labelsize = label_size)\n",
    "ax[0].set_title(r\"MCPM  \" r'$p(N|\\mathcal{D})$')\n",
    "\n",
    "ax[1].hist(ICM_counts_NONmissing[fold, :, task], 100, alpha=0.75, color='w', edgecolor='k')\n",
    "ax[1].axvline(counts_NONmissing[fold, task], color=color_line_obs, linewidth=vertical_line_wid, label='Observed N')\n",
    "ax[1].axvline(np.percentile(ICM_counts_NONmissing[fold, :, task], 95), color='r', linestyle='dashed', linewidth=vertical_line_wid)\n",
    "ax[1].axvline(np.percentile(ICM_counts_NONmissing[fold, :, task], 5), color='r', linestyle='dashed', linewidth=vertical_line_wid, label='90% CI')\n",
    "ax[1].axvline(np.percentile(ICM_counts_NONmissing[fold, :, task], 50), color=color_line_mean, linestyle='dashed', linewidth=vertical_line_wid, label='Post. mean')\n",
    "ax[1].set_yticks([]) \n",
    "ax[1].tick_params(axis = 'both', which = 'major', labelsize = label_size)\n",
    "ax[1].set_title(r\"ICM  \" r'$p(N|\\mathcal{D})$')\n",
    "ax[1].legend(loc=8)\n",
    "\n",
    "\n",
    "ax[2].hist(LGCPN_counts_missing[fold, :, task], 100, alpha=0.75, color='w', edgecolor='k')\n",
    "ax[2].axvline(counts_missing[fold, task], color=color_line_obs, linewidth=vertical_line_wid, label='Observed N')\n",
    "ax[2].axvline(np.percentile(LGCPN_counts_missing[fold, :, task], 95), color='r', linestyle='dashed', linewidth=vertical_line_wid)\n",
    "ax[2].axvline(np.percentile(LGCPN_counts_missing[fold, :, task], 5), color='r', linestyle='dashed', linewidth=vertical_line_wid, label='90% CI')\n",
    "ax[2].axvline(np.percentile(LGCPN_counts_missing[fold, :, task], 50), color=color_line_mean, linestyle='dashed', linewidth=vertical_line_wid, label='Post. mean')\n",
    "ax[2].set_yticks([])\n",
    "ax[2].legend(loc=8)\n",
    "ax[2].tick_params(axis = 'both', which = 'major', labelsize = label_size)\n",
    "ax[2].set_title(r\"MCPM  \" r'$p(N^*|\\mathcal{D})$')\n",
    "\n",
    "\n",
    "ax[0].xaxis.set_ticks(np.arange(10500, 14000, 1000))\n",
    "ax[1].xaxis.set_ticks(np.arange(10500, 14000, 1000))\n",
    "ax[2].xaxis.set_ticks(np.arange(900, 2000, 300))\n",
    "ax[3].xaxis.set_ticks(np.arange(900, 2000, 300))\n",
    "\n",
    "ax[0].set_xlim(10000,14000)\n",
    "ax[1].set_xlim(10000,14000)\n",
    "ax[2].set_xlim(800,2000)\n",
    "ax[3].set_xlim(800,2000)\n",
    "\n",
    "\n",
    "\n",
    "ax[3].hist(ICM_counts_missing[fold, :, task], 100, alpha=0.75, color='w', edgecolor='k')\n",
    "ax[3].axvline(counts_missing[fold, task], color=color_line_obs, linewidth=vertical_line_wid, label='Observed N')\n",
    "ax[3].axvline(np.percentile(ICM_counts_missing[fold, :, task], 95), color='r', linestyle='dashed', linewidth=vertical_line_wid)\n",
    "ax[3].axvline(np.percentile(ICM_counts_missing[fold, :, task], 5), color='r', linestyle='dashed', linewidth=vertical_line_wid, label='90% CI')\n",
    "ax[3].axvline(np.percentile(ICM_counts_missing[fold, :, task], 50), color=color_line_mean, linestyle='dashed', linewidth=vertical_line_wid, label='Post. mean')\n",
    "ax[3].set_yticks([]) \n",
    "# axs[i].set_xticks([])\n",
    "ax[3].legend(loc=8)\n",
    "ax[3].tick_params(axis = 'both', which = 'major', labelsize = label_size)\n",
    "ax[3].set_title(r\"ICM  \" r'$p(N^*|\\mathcal{D})$')\n",
    "#ax[3].xaxis.set_ticks(np.arange(900, 1200, 200))\n",
    "\n",
    "\n",
    "#fontsize=40\n",
    "#name = \"Histograms_icm_lgcpn_crime\" + str(cmap)\n",
    "#fig.savefig(name + '.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
